====ArchLinux arm installation on toshiba ac100==== **UPDATE:** [[U-BOOT CM11 and ArchLinux multiboot]] I used [[http://archlinuxarm.org/platforms/armv7/trimslice#qt-platform_tabs-ui-tabs2|ArchLinuxARM TrimSlice]] base filesystem, \\ [[http://gitorious.org/~marvin24/ac100/marvin24s-kernel/trees/chromeos-ac100-3.0-exp|chromeos-ac100-3.0-exp]] kernel branch by [[http://gitorious.org/~marvin24|marvin24]] \\ and [[http://gitorious.org/ac100/abootimg/trees/master|abootimg]] by [[https://gitorious.org/~phhusson|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|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. ===Getting files=== 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 ===Untarring fs on SD=== #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 ===Installing kernel into the trimslice fs=== 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 ===Rebooting the ac100=== reboot #everything's gonna be alright :) access the system as usr=root, pwd=root. ====Arch base configuration==== be careful: you have a base survive vi installation.. don't use arrows :) or use nano instead. See [[https://wiki.archlinux.org/index.php/Beginners%27_Guide#Chroot_and_configure_the_base_system|Beginners' Guide. Chroot and configure the base system]] ====Connect to the internet==== === WIFI === **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 === GSM Modem === 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 ====Update the system==== pacman -Syu ====Install base packages==== 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 ====Create a user==== 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 ====Run X==== systemctl start lightdm If all goes well, you may add lightdm to autostart systemctl enable lightdm ====Useful things==== ZramSwap and events handling pacman -S yaourt yaourt -S zramswap input-event-daemon See also: [[headphones_insertion_handling|Autoswitch speakers and backlight]] [[https://wiki.archlinux.org/index.php/Touchpad_Synaptics|Touchpad Synaptics]] ====OpenGLES2 and hardware video decoding==== ===Preamble=== Attention: This section targeted at developers, not at users.
If you have problems with this stuff, just remove nvidia-tegra package.

As for now, you should downgrade you xorg-server package cause of use-pixman-glyph-cache.patch [[https://bugs.archlinux.org/task/32612|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). ===Lets start=== 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 [[https://aur.archlinux.org/|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 [[hw_accelerated_video_playback#gstreamer_tuninig|Hardware accelerated video#gstreamer_tuninig]] for further instrustions ====Want to go further with archlinux==== [[https://wiki.archlinux.org/index.php/Main_Page|archlinux]] [[http://archlinuxarm.org/|ArchLinuxArm]] ====Problems and todo==== * Artefacts and in X when using GLES. * Some programs crashes from time to time