UPDATE: U-BOOT CM11 and ArchLinux multiboot
I used ArchLinuxARM TrimSlice base filesystem,
chromeos-ac100-3.0-exp kernel branch by marvin24
and abootimg by phhusson.
UPDATE: the kernel links above are now dead, after wasting a lot of time to find and install a prebuild up-to-date kernel, i finally compiled it by myself, using mainline git kernel; see U-BOOT CM11 and ArchLinux multiboot for detailed instructions
On my system there were ubuntu on emmc; so installed arch on SD.
You can also use SOSBoot Image to install archlinux on clean ac100.
With sosboot, you should put three files linked below to usb stick or sdcard cause SOSBoot doesn't provide any wireless connectivity.
cd ~/Downloads wget http://archlinuxarm.org/os/ArchLinuxARM-trimslice-latest.tar.gz \ http://flie.dyndns.org:7080/archlinux/armv7h/{abootimg-git-20121116-1,linux-ac100-chromeos-exp-3.0.27-2}-armv7h.pkg.tar.xz
#mmcblk1 is the SD. Use mmcblk0p7 to install on MMC #use a ext3 or ext4 formatted SD sudo mount /dev/mmcblk1p1 /mnt cd /mnt sudo tar xvf ~/Downloads/ArchLinuxARM-trimslice-latest.tar.gz sudo cp ~/Downloads/{linux-ac100-chromeos-exp-3.0.27-2,abootimg-git-20121116-1}-armv7h.pkg.tar.xz root
sudo -i cd /mnt mount -t proc none proc mount -o bind /dev dev mount -o bind /sys sys chroot ./ /bin/bash pacman -R linux-trimslice linux-headers-trimslice nvidia-trimslice # Remove unneeded trimslice stuff rm /etc/netcfg.d/ethernet-eth0 # no eth in ac100 pacman -U /root/linux-ac100-chromeos-exp-3.0.27-2.tar.xz /root/abootimg-git-20121116-1-armv7h.pkg.tar.xz abootimg --create /boot/bootimg-linux-ac100-chromeos-exp.img \ -k /boot/vmlinuz-linux-ac100-chromeos-exp \ -r /boot/intrafms-linux-ac100-chromeos-exp.img \ -f /boot/bootimg-linux-ac100-chromeos-exp.cfg
Now you should find out which partition is you bootpart run
for f in /dev/mmcblk0*; do abootimg -i $f 2>&1 | fgrep -q "cmdline = " && echo $f; done
For me output was like /dev/mmcblk0p2
So, lets write kernel and initramfs here:
dd if=/boot/bootimg-linux-ac100-chromeos-exp.img of=/dev/mmcblk0p2 exit cd / umount -l /mnt/{proc,dev,sys} umount /mnt
reboot #everything's gonna be alright :)
access the system as usr=root, pwd=root.
be careful: you have a base survive vi installation.. don't use arrows :) or use nano instead.
UPDATE: unfortunately latest ArchLinuxARM-trimslice-latest.tar.gz image lacks some useful packages, needed to bring up wifi; so i downloaded (from 'core' section of http://it.mirror.archlinuxarm.org/armv7h/) and installed it manually :
pacman -U dialog-1_1.2_20140219-1-armv7h.pkg.tar.tar libnl-3.2.24-1.1-armv7h.pkg.tar.tar rfkill-0.5-1-armv7h.pkg.tar.tar wpa_supplicant-2.1-3.1-armv7h.pkg.tar.tar
now you can proceed configuring wifi connection, you can use wifi-menu or directly wpa_supplicant
tweak /etc/wpa_supplicant.conf to connect to your wifi:
#open network network={ ssid="dlink" key_mgmt=NONE } #WEP protected network network={ ssid="VodafoneMobileHotspot_ 805F" key_mgmt=NONE wep_key0="MUDGCFJ7GSJVF" } #WPA protected network network={ ssid="AP_NAME1" psk="passwd!1" priority=5 }
bring wifi on:
modprobe rt2800usb rfkill unblock wifi wpa_supplicant -B -Dwext -iwlan0 -c/etc/wpa_supplicant.conf dhcpcd wlan0
pppd and chat stuff for 3G modem connection
nano /etc/ppp/peers/mts
Just an example for my GSM operator. Put this to file:
/dev/ttyACM0 noipdefault defaultroute persist noauth nodetach usepeerdns user "mts" # may need to be changed for you operator settings password "mts" # this one too connect "/usr/sbin/chat -vf /etc/ppp/chatscripts/mts.chat"
contents of /etc/ppp/chatscripts/mts.chat (APN goes here):
TIMEOUT 3 ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED "" ATZ OK ATX3Q0V1E1S0=0&C1&D2 OK-AT-OK AT+CFUN=1 OK-AT-OK AT+CGDCONT=1,"IP","internet.mts.ru" OK ATDT*99# CONNECT ""
Now you can trying to get connection
pppd call mts
pacman -Syu
pacman -S xorg-server xterm xf86-video-fbdev lxterminal lxrandr ttf-dejavu pacman -S xf86-input-synaptics #needed for a usable touchpad pacman -S openbox tint2 geany modemmanager vim sudo evince gpicview pcmanfm polkit \ lxtask htop laptop-mode-tools laptop-detect powertop lightdm lightdm-gtk-greeter # You can use wifi-menu or wicd instead of network-manager pacman -S networkmanager network-manager-applet gnome-keyring dunst
username=myusername # change this useradd -m -g users $username usermod -aG bin,daemon,adm,tty,disk,kmem,wheel,ftp,rfkill,http,network,video,audio,storage,scanner,power,dbus $username passwd $username
systemctl start lightdm
If all goes well, you may add lightdm to autostart
systemctl enable lightdm
ZramSwap and events handling
pacman -S yaourt yaourt -S zramswap input-event-daemon
See also: Autoswitch speakers and backlight
<HTML> <span style=“color:red;font-size:120%;”> Attention: This section targeted at developers, not at users. <br/> If you have problems with this stuff, just remove nvidia-tegra package.<br/> <br/> </span> </HTML>
As for now, you should downgrade you xorg-server package cause of use-pixman-glyph-cache.patch bug 32612
in newer (1.13.0-4 and 1.13.0.901-1) package versions to avoid font rendering problems.
Latest known working version 1.13.0-3 available in fly-ac100 repo (see below)
Also, good gles2 experience could be achieved only with 3.1.10-l4t-r2 kernel, that does not support suspend/resume functionality on ac100 (as for me at least).
You may add repo fly-ac100 into you /etc/pacman.conf to get some prebuilded kernels, drivers and utils for ac100.
Source pkgbuilds: https://github.com/fly-away/PKGBUILDs and
AUR
[fly-ac100] Server = http://flie.dyndns.org:7080/archlinux/armv7h/
Install sortware from new repo:
pacman -Sy fly-ac100/xorg-server nvidia-tegra totem-gst libegl libgles libva mesa-demos-git gnome-media linux-ac100-l4t-r16.2
Update contents of you boot partition with dd to use new kernel, as pacman output says.
Also add to your /etc/pacman.conf:
IgnorePkg = xorg-server
to mask xorg-server package for updates.
Ok, time to boot into new kernel
reboot #all gonna be ok
Also see Hardware accelerated video#gstreamer_tuninig for further instrustions