====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