Installing and Configuring Arch Linux on your 2012 Nexus 7
A step by step guide
Preparation of the host computer and the Nexus
Enable Android Debug Bridge (adb) on your Nexus
Setting up fastboot (and adb) on your computer
Installing MultiROM from the Android App
Installing the MultiROM manager from the play store
Installing MultiROM manually from the command line
Create a user and setup your passwords
Setting up X (the windowing system)
TL;DR Use the table of contents to skip to the section you need.
Go here to discuss this document
I’ve also enabled comments since I’ve noticed a lot more traffic coming here, then realized this document is a top google hit so the traffic may be coming from google not xda. Feel free to comment on this document, or e-mail me.
Arch Linux is kind of a mixed bag. Upon installing the system you will have little more than a command line with base *nix functionality. Unlike Ubuntu or some other popular distributions it does not come ready to go out of the box. The system is however quite easy to set up to meet your needs exactly, if you are willing to spend a little extra time to set it up. There are advantages and disadvantages to this approach.
The great thing about a system like this, especially when you have limited resources (like on your Nexus) is that there is absolutely no bloat. Things should run more smoothly and quickly, allowing you to use your system more efficiently. Since you set everything up, you also have a much better understanding of how the system works. This is great since you will be able to much more easily fix things when they inevitably break. The system is also very easy to configure and work with.
The downside is that you spend longer setting up your system. Things don’t just work out of the box. Want a specific program? You need to install it. Want networking to start on boot? You’ll have to tell it to. Nothing is automatic. Unless you manually set up the automatic functionality ;-) You will also need to be able to use a command line and edit text files to configure the system.
There is a wealth of documentation on Arch Linux, and if you aren’t proficient with *nix systems already you will learn a lot by running Arch. You will not however have a system that just works 30 seconds after you install.
More information about the philosophy and goals of Arch can be found here.
The Arch Linux Wiki is a fantastic resource. However, currently there is no information specific to the Nexus 7. Furthermore, the wiki’s install guide targets desktops and laptops. This guide is intended to bridge that gap.
This guide has three goals. Firstly to be a walkthrough setup guide for anyone who has no experience with Arch. Secondly, to be a reference guide to setting up features that are specific to the Nexus 7 for those who have already gone through the walkthrough, or have more experience with Linux and Arch on more traditional computers. Thirdly, to provide a bridge that will allow novices and experienced users alike to get comfortable enough with Arch on their Nexus to branch off from this guide and use the Arch Wiki to further customize their installation and find answers to questions beyond the scope of this guide.
If your Nexus is already rooted, you can actually do the install without ever plugging your Nexus into your computer. Just skip to Installing the MultiROM manager from the play store. If you are not rooted, carry on.
Preparing for the installation is actually much more involved than the actual installation. First you will need to get the fastboot and adb programs onto your computer. Then you’ll need to unlock your bootloader. Thirdly, you will need to install MultiROM by Tassadar. Finally you will do the actual install. If you have already done any of these steps, you may skip them. Additionally, fastboot is only required for the unlock and the installation of MultiROM, you don’t need it for the actual installation of Arch.
If your Nexus isn’t booted up, go ahead and start it up. Go to “Settings->About tablet”. Tap on “Build Number” until it says you are a developer (about seven times). Go back to the main Settings screen. You should now have a “Developer options” choice. Go into “Developer options” and enable “USB debugging”.
Plug your Nexus into your computer using the USB cable.
If you are running Windows, you’ll need to install some additional drivers at this point. You can get them from Asus. Choose “Others” for the OS. Then pick the global option under USB. Unzip the resulting file to create a usb_driver folder. Follow these steps to get the driver installed:
The fastboot utility is required to unlock the Nexus, and install the MultiROM utility. These instructions will be similar for Windows and Macs.
You’ll need to get the Android SDK from here. Go ahead and choose to “Download the SDK/ADT Bundle for Windows”. I’ll assume you unzip the resulting download into your C:\ drive resulting in a folder named C:\adt-bundle-windows-x86_64-20130522\. Adjust accordingly if you put it somewhere else or if the folder is named differently.
Open up a command line by clicking on Start and type cmd.exe under the “Run..” option or the “Search programs and files” option. Use the following command to change to the proper directory:
cd c:\adt-bundle-windows-x86_64-20130522\sdk\platform-tools
You’ll need the Android SDK, just as in windows. Get it here. Open the Terminal program. Assuming you unzipped the to your home directory type the following command in your terminal:
$ cd ~/adt-bundle-mac-x86_64-20130522/sdk/platform-tools
Your distribution probably includes a package for these tools. Simply install them from your package manager. Examples follow (source)
Debian based (Ubuntu, Mint, Sid, etc)
$ sudo apt-get install android-tools-fastboot android-tools-adb
Fedora
$ sudo yum install android-tools
Arch
$ sudo pacman -S base-devel
$ wget https://aur.archlinux.org/packages/an/android-sdk-platform-tools/android-sdk-platform-tools.tar.gz
$ tar -xzf android-sdk-platform-tools.tar.gz
$ cd android-sdk-platform-tools
$ makepkg -s
$ sudo pacman -U android-sdk-platform-tools*.tar.xz
Alternatively you may use your favorite AUR manager to install the android-sdk-platform-tools package.
Open up a terminal emulator and you are good to go for the next steps.
Obviously if you’ve already unlocked your bootloader you can skip this step.
WARNING: Unlocking the bootloader will erase any data you have on your Nexus. Backup if you care about anything on the device.
Type the following command into your terminal window:
adb reboot bootloader
Attention: If you are running Mac you may have to change adb to ./adb and fastboot to ./fastboot. In Linux you may have to prepend sudo to make it sudo adb and sudo fastboot.
After your Nexus reboots to the screen with the Android on his back, type in:
fastboot oem unlock
Use the volume key to highlight “Yes” then the power button to select it. At the bottom of your screen it should now say in red letters “Lock state - unlocked”. Now is a good time to go ahead and set up Android again. Use fastboot to reboot your computer and come back once you are done and you have enable USB Debugging again. I’ll wait.
fastboot reboot
This is the MultiROM thread. You can get the files you’ll need by scrolling down to the second post where it says “Download”. Alternatively you may get the files from Tassadar’s goo.im mirror.
You need to be in the bootloader for this step. You may type the following command into your terminal window on your computer to get to the bootloader:
adb reboot bootloader
We will install the version of TWRP that has been modified to work with MultiROM. You can get it from the MultiROM thread or from Tassadar’s goo.im mirror. The file you need is named TWRP_multirom_grouper_*.img. Download this to your computer. In the following, replace <path to download> with the location you downloaded TWRP_multirom_grouper_*.img to. For example, C:\Users\ylixir\Downloads or ~/Downloads. Remember you may have to modify the fastboot command on Linux or Mac, see the Unlock the bootloader section for more information.
fastboot flash recovery <path to download>/TWRP_multirom_grouper_*.img
After this has finished you may reboot.
fastboot reboot
You may now proceed to Installing MultiROM from the Android App or Installing MultiROM manually from the command line. Choose your own adventure!
First we need to install root, if you are already rooted, you can skip to Installing the MultiROM manager from the play store.
You should be in the TWRP recovery for this step. If you are not then type in the following command into the terminal on your computer:
adb reboot recovery
TWRP will actually offer to root for you, simply choose the “Reboot” option followed by the “System” option. It will ask you if you wish to install SuperSU. Just swipe the blue dot with the white arrow to root your Nexus.
After the Nexus finishes rebooting, find the “SuperSU Installer” in your app drawer and run it. Choose the “Play” option. Choose “Update” from the Play Store and “Accept”.
Go back to your app drawer and open the new SuperSU app. You will probably need to update the binary now. I see no reason to get your recovery involved, simply choose the “Normal” option.
“Installation success !” You can reboot as recommended now if you like.
If you are reading this guide from your computer you can follow this link and to install the MultiROM manager to your Nexus (make sure you have your Nexus 7 selected after you click “Install” if you do it from your computer). Alternatively, you may also install it from the Play Store on your Nexus. Search for “multirom manager” and it should come right up. The author of the app you want is named “Vojtech Bocek”--incidentally a.k.a. Tassadar, the person that made this all possible.
Open the “MultiROM Manager” app after you have installed it. Choose “Grant” when it asks for superuser permissions. It should give you the options to install MultiROM itself (basically the boot menu), Recovery (a modified TWRP), and Kernel (a modified kernel that enables the magic).
You must install MultiROM and a kernel. If you have updated to Kit Kat then choose “Stock 4.4” for your kernel. Otherwise pick the one that fits what you have on your Nexus. If you already did the Installing a custom recovery step above you don’t need to choose the “Recovery” option. If you haven’t done this step, then choose “Recovery”.
After you have made your selections, choose “Install”. It will prompt you to reboot, go ahead.
Now you may skip to Installing the Arch Image.
You need the multirom-*-grouper.zip and the kernel_kexec_grouper_*.zip that is appropriate for your system. You can get them from the MultiROM thread or from Tassadar’s goo.im mirror.
You may download the files directly with your Nexus, or onto your computer and copy them over. Anywhere is fine--I put mine in the Download folder. Now reboot your Nexus into the bootloader again.
adb reboot bootloader
Once it has come up choose “Install”. Then find the multirom-*-grouper.zip. Choose “Add More Zips” and also select the kernel_kexec_grouper_*.zip. Then swipe to confirm the installation. When you have the blue “Successful” message, tap the “Home” button.
You’ll need Arch itself from this post. The link you want is the mediafire one at the bottom of the post. The file is arch_20130626.mrom.
You may download the file directly with your Nexus, or onto your computer and copy it over. Anywhere is fine--I put mine in the Download folder. Reboot your Nexus into the bootloader again.
adb reboot bootloader
Now we install Arch by choosing “Advanced->MultiROM->Add ROM”. Pick the “MultiROM installer” option and tap “Next”. Choose arch_20130626.mrom. Swipe to confirm. Now choose “Reboot System”.
When MultiROM comes up, choose “arch_20130625” to boot into Arch Linux. If you choose “Internal” instead, you will boot into Android.
Congratulations on your newly installed (and fairly useless as of now) Arch Linux system!
Wiki link for more information
Arch boots to a command line by default, so you’ll need to get a keyboard attached to do anything useful. One option is to connect a USB keyboard with an OTG cable. They can be had for very cheap on Amazon and elsewhere. Another (free) option is to make your computer into a serial console and connect with that. The following instructions are operating system specific instructions on how to do that.
Note: After you’ve connected either via keyboard or via USB serial you type in “root” and “root” again for your username and password to log in.
If you have access to a Linux system, I recommend that over Windows, but if you must use Windows here are the instructions. I have Windows 7 64 bit so the following instructions may need to be adjusted depending on what version you have.
You’ll need some kind of terminal program. PuTTY will work for both serial communication and ssh. Get it here.
Plug in the Nexus to your USB port. The driver will probably fail to install properly. It did not work out of the box for me. The working driver is just one inf file that just tells Windows to pretend your Nexus is a serial console. Get the driver from here.
Follow these steps to get the driver installed:
Take note of the COM number for the device. Mine is COM3 so I’ll use that in the instructions, replace the 3 with whatever number you have. Open the putty program you downloaded earlier. Choose “Serial” under “Connection type:”. Change the “Serial line” to “COM3”. Click open.
Plug in the Nexus to your USB port. Open up a terminal and type:
$ sudo screen /dev/ttyACM0 115200
The screen program may not be installed. If it isn’t already installed then get it with your package manager of choice. In a ubuntu, mint, or other debian flavored distribution the command below should install it:
$ sudo apt-get install screen
I don’t have a Mac to test this with, but Linux and Mac both share a unix heritage so the process should be similar to Linux. You’ll need to open the “Terminal” program to get the unix command line. The device you are looking for is /dev/cu.usbmodem* where * is some value. Type ls /dev/cu.usbmodem* to find the correct device.
For example:
$ sudo screen /dev/cu.usbmodemfa1331 115200
Thanks for the tip Aiden Foxx.
Wiki link for more information
If you don’t like netctl for managing your wifi, options not covered here include wicd and Network Manager.
As of this writing (July 16, 2013) the system comes with the netcfg package for networking. Netcfg is, however, being phased out in favor of netctl. So to properly set up networking we will have to first configure your wifi, then install netctl, and configure your wifi again :-/
First get wifi working:
# wifi-menu
After you’ve configured wifi, we’ll need to get our system up to date, then download the netctl packages, and finally remove netcfg and install netctl
# pacman -Syu
# pacman -Sw netctl wpa_actiond iproute2 iptables
# pacman -Rs netcfg
# pacman -S netctl wpa_actiond
Now we need to stop the interface and move the netcfg profile to netctl. We will then need to edit the profile configuration. I use vi, but feel free to use nano or whatever floats your boat. You can get the wlan0-profile-name by doing a $ls /etc/network.d/.
# netctl stop wlan0-profile-name
# mv /etc/network.d/wlan0* /etc/netctl/
# vi /etc/netctl/wlan0-profile-name
Now rename the variables that are in all capitals to UpperCamelCase. So “CONNECTION” becomes “Connection”. Leave ESSID and IP in capital. Also remove the single quote character from around the values after the equal signs, but leave the single quote around the value for Description and ESSID. You may also want to add a line with the following to fix some connection issues:
TimeoutDHCP=30
At this point I couldn’t start the network, but I could ping google, so let’s just reboot and see what we see. First lets set it to start automatically.
# netctl start wlan0-profile-name
# systemctl enable netctl-auto@wlan0.service
# reboot
That gets your wifi working, but you may want to follow the next couple of steps to make things a little more secure.
Change permissions:
# chmod 600 /etc/netctl/wlan0-profile-name
First get an obfuscated passphrase with the following command:
# wpa_passphrase [ssid] [passphrase]
Now edit your profile configuration file. As always feel free to replace vi with nano.
# vi /etc/netctl/wlan0-profile-name
Replace the Key=your_key with Key=\”wpa_passphrase_output
Wiki link for more information
Use the following commands to set up a username for yourself and to set up your passwords. Change “ylixir” to whatever username you want.
# useradd -m -g users -s /bin/bash ylixir
# chfn ylixir
# passwd ylixir
# passwd root
# exit
You may now type in your new username and password to log in.
Wiki link for more information
The sudo command allows you to run commands as root (superuser do). It’s basically the same as running something as an Administrator on Windows. Logging in as root generally considered a bad idea. However you often need to be root to perform maintenance on your system. This convenience utility makes it easy to perform root commands while logged in as another user.
You need to switch to root to install packages. The su command does this. When it asks for a password, use your root password. After you are root you may install sudo.
$ su
# pacman -S sudo
Okay, now that sudo is installed we need to configure it.
# visudo
or
# EDITOR="nano" visudo
Find the following line:
# %wheel ALL=(ALL) ALL
Remove uncomment it by removing the # and space from the beginning so it becomes:
%wheel ALL=(ALL) ALL
Save and exit out of the editor.
Okay, now any user of the wheel group can use sudo. You better add your own username to the wheel group. And then exit out of superuser mode. You will also have to log out of your own user in order for the changes in your group membership to take effect.
# gpasswd -a ylixir wheel
# exit
$ exit
Wiki link for more information
If you wish you may install ssh to allow you to log in over a network among other things.
$ sudo pacman -S openssh
It’s probably a bad idea to allow root logins from over a network. Lets disable that by editing the configuration file. You may use nano instead of vi if you wish.
$ sudo vi /etc/ssh/sshd_config
Add the following line to the configuration file.
PermitRootLogin no
Now it’s all set up, start it, and tell the system to start it automatically on boot.
$ sudo systemctl start sshd
$ sudo systemctl enable sshd.service
If you wish to find out what IP address your Nexus is using type in:
$ ip addr show dev wlan0
Now you may use PuTTY if on Windows, or the ssh command from a terminal on Linux or Mac to log into your Nexus over the network.
Wiki link for more information
I stole some scripting from Ubuntu and from this guy and I think I have bluetooth up and running.
First, install some packages we need.
$ sudo pacman -S rfkill bluez-utils base-devel gstreamer0.10-base libsndfile
$ wget -c https://aur.archlinux.org/packages/bl/bluez4/bluez4.tar.gz
$ tar -xzf bluez4.tar.gz
$ cd bluez4
you can use nano instead of vi in the next command if you wish
$ vi PKGBUILD
Change the arch line to include ‘armv7h’
$ makepkg -s
$ sudo pacman -U *-armv7h.pkg.tar.xz
Next we need to create the scripts to start bluetooth on boot.
$ sudo vi /usr/bin/load_bcm4330.sh
Enter the following into this file:
#!/bin/bash
#
# BCM4330 BT Adapter upload rampatch
# env Variables
logfile=/var/log/rampatch.log
# logfile check
if ! test -f ${logfile} ; then
# logfile does not exist, so create it
touch $logfile
fi
echo "-------------------------------------------------------">>$logfile
entrytime=$(date +"%Y-%m-%d %H:%M:%S")
echo $entrytime " applying rampatch to BCM4330 bluetooth adapter" \
>> $logfile
# wait for hci0 to become available and usable
#sleep 1
/usr/bin/rfkill unblock bluetooth
/usr/bin/brcm_patchram_plus --patchram /lib/firmware/bcm4330.hcd \
--no2bytes \
--scopcm=0,2,0,0,0,0,0,0,0,0 \
--enable_hci \
--enable_lpm \
--baudrate 3000000 --use_baudrate_for_download \
--tosleep=50000 \
/dev/ttyHS2 >> $logfile
entrytime=$(date +"%Y-%m-%d %H:%M:%S")
echo $entrytime " ..done" >> $logfile
echo "--------------------------------------------------”>>$logfile
Next we need to create the scripts to start bluetooth on boot Source.
$ sudo vi /usr/bin/connect_bt.sh
Enter the following into this file:
#!/bin/bash
address="AA:BB:CC:DD:EE:FF"
while (sleep 1)
do
connected=`hidd --show` > /dev/null
if [[ ! $connected =~ .*${address}.* ]] ; then
hidd --connect ${address} > /dev/null 2>&1
fi
done
Now we set the permissions for those files, and edit the systemd files.
$ sudo chmod u+x /usr/bin/load_bcm4330.sh
$ sudo chmod u+x /usr/bin/connect_bt.sh
$ sudo vi /etc/systemd/system/loadfw.service
And enter the following into this file:
[Unit]
Description=Load firmware into BCM4330 bluetooth USB adapter
After=basic.target
After=suspend.target
After=hibernate.target
[Service]
Type=simple
ExecStart=/usr/bin/load_bcm4330.sh
[Install]
WantedBy=basic.target
WantedBy=suspend.target
WantedBy=hibernate.target
And another file
$ sudo vi /etc/systemd/system/connectbt.service
Which contains
[Unit]
Description=Connect to bluetooth devices
After=basic.target
After=suspend.target
After=hibernate.target
[Service]
Type=simple
ExecStart=/usr/bin/connect_bt.sh
[Install]
WantedBy=basic.target
WantedBy=suspend.target
WantedBy=hibernate.target
Create new file /etc/udev/rules.d/10-local.rules Source
# Set bluetooth power up
ACTION=="add", KERNEL=="hci0", RUN+="/usr/bin/hciconfig hci0 up"
And finally set it to start on boot:
$ sudo systemctl start loadfw.service
$ sudo systemctl enable loadfw.service
$ sudo systemctl start bluetooth.service
$ sudo systemctl enable bluetooth.service
At this point you may want to do an hidd --search to find out the addresses of your devices and edit connect_bt.sh accordingly
$ sudo systemctl start connectbt.service
$ sudo systemctl enable connectbt.service
Note that if you wish to add more than one device you can adjust the connect_bt.sh script to add an address2, address3 etc, and add the if...fi block for each device.
Install the xorg package, and remove the bogus xorg.conf
$ sudo pacman -S xorg xorg-xinit
$ sudo rm /etc/X11/xorg.conf
$ sudo pacman -S xfce4 xfce4-goodies gamin
$ sudo pacman -S kde
$ sudo pacman -S enlightenment17
$ sudo pacman -S lxde
Next make a new /etc/X11/xorg.conf.d/01-nexus7-input.conf
Enter the following into this file (Cribbed but modified from here):
Section "ServerFlags"
Option "AllowEmptyInput" "False"
EndSection
Section "InputClass"
Identifier "Nexus 7 Touchscreen"
MatchProduct "elan-touchscreen"
Driver "evdev"
Option "Ignore" "off"
# Option "SwapAxes" "yes"
# Option "InvertX" "yes"
# Option "InvertY" "no"
EndSection
# Configure gpio keys
Section "InputClass"
Identifier "HW keys"
MatchProduct "gpio-keys"
Driver "evdev"
Option "Ignore" "off"
EndSection
Also make a file for the video drivers. Note that you have two options for devices here. The fbdev and the tegra. Tegra is faster but really glitchy. The fbdev on the other hand renders much better, but is slow. Tegra is basically unusable for me, so I am currently using fbdev. This needs to be fixed eventually
$ sudo vi /etc/X11/xorg.conf.d/10-nexus7-screen.conf
Section "Module"
Disable "dri"
Disable "dri2"
Disable "glx"
SubSection "extmod"
Option "omit xfree86-dga"
EndSubSection
EndSection
Section "Device"
Identifier "Tegra"
Driver "tegra"
# Option "ARGBHWCursor" "true"
EndSection
Section "Device"
Identifier "Framebuffer"
Driver "fbdev"
# The rotate option makes the screen landscape mode
# put a # in front of this line if you want portrait mode
Option "Rotate" "CW"
EndSection
Section "Monitor"
Identifier "Monitor"
# The rotate option makes the screen landscape mode
# put a # in front of this line if you want portrait mode
Option "Rotate" "right"
EndSection
Section "Screen"
Identifier "Screen"
# remove the # from the driver you want to use
# add a # to the driver you don’t want to use
# Device "Tegra"
Device "Framebuffer"
Monitor "Monitor"
EndSection
$ vi .xinitrc
#exec startxfce4
#exec startkde
#exec enlightenment_start
exec startlxde
$ startx
A mouse will help make things useable but kind of defeats the point. A cheap stylus is smaller, cheaper, and helps hit those tiny buttons.
Mer (plasma active) References
Nvidia references note that to get the newer X ABI 14 drivers, change the domain name to developer.nvidia.com
Enlightenment 17 is also reported to be working
These are only really working for me on fbdev, the graphics are just so glitchy :-/
Pick one:
$ sudo pacman -S matchbox-keyboard
$ sudo pacman -S xvkbd
$ sudo pacman -S caribou
$ sudo pacman -S onboard
Caribou and Onboard both give errors starting up, but matchbox and xvkbd seem fine.
I’ll cover installing lightdm. You can use a different one if you like, see the Arch Linux Wiki for more information.
$ sudo pacman -S lightdm lightdm-gtk3-greeter
$ sudo systemctl enable lightdm
Upon reboot, lightdm will start automatically.
You basically have three options here. The first is to get an on screen keyboard showing up on the login screen. The second is setting up automatic login. And the third is setting up your display manager to not require a password. I don’t have passwordless logins working yet. I’m only going to cover lightdm in this guide. See the wiki/google for information on other display managers.
You can tweak this to whichever keyboard you choose. You only need to edit /etc/lightdm/lightdm-gtk-greeter.conf and change the keyboard= line. The keyboard is available from the accessibility menu. I used:
keyboard=/usr/bin/xvkbd -geometry 800x300-0-0 -compact
You need to add yourself to the autologin group.
$ sudo groupadd autologin
$ sudo gpasswd -a USERNAME autologin
Edit the configuration file for lightdm:
$ sudo vi /etc/lightdm/lightdm.conf
In the [SetDefaults] section, add/edit the autologin-user= line. Make sure there is no # at the beginning of the line. Also the timeout for good measure.
autologin-user=your-username
autologin-user-timeout=0
Don’t quite have this working yet. With automatic login working anyway, multiple users is probably a small use case so I’m going to leave it for now and come back later. The following should get one close if one decides to try to get it working before I do.
You need to add yourself to the nopasswdlogin group.
$ sudo groupadd nopasswdlogin
$ sudo gpasswd -a USERNAME nopasswdlogin
Edit the configuration file for lightdm:
$ sudo vi /etc/pam.d/lightdm
Add the following line to the end of the file.
auth sufficient pam_succeed_if.so user ingroup nopasswdlogin
We’ll install touchégg to get touch working better. First we need the development tools, then we’ll download the package specification, create the package, and install it.
$ sudo pacman -S base-devel
$ wget -c https://aur.archlinux.org/packages/fr/frame/frame.tar.gz
$ tar -xzf frame.tar.gz
$ cd frame
$ vi PKGBUILD
Change the arch line to include ‘armv7h’
$ makepkg -s
$ sudo pacman -U *-armv7h.pkg.tar.xz
$ cd ..
$ wget -c https://aur.archlinux.org/packages/gr/grail/grail.tar.gz
$ tar -xzf grail.tar.gz
$ cd grail
$ vi PKGBUILD
Change the arch line to include ‘armv7h’
$ makepkg -s
$ sudo pacman -U *-armv7h.pkg.tar.xz
$ cd ..
$ wget -c https://aur.archlinux.org/packages/ge/geis/geis.tar.gz
$ tar -xzf geis.tar.gz
$ cd geis
$ vi PKGBUILD
Change the arch line to include ‘armv7h’
$ makepkg -s
$ sudo pacman -U *-armv7h.pkg.tar.xz
$ cd ..
$ wget -c https://aur.archlinux.org/packages/to/touchegg/touchegg.tar.gz
$ tar -xzf touchegg.tar.gz
$ cd touchegg
$ vi PKGBUILD
Change the arch line to include ‘armv7h’
$ makepkg -s
$ sudo pacman -U *-armv7h.pkg.tar.xz
$ cd ..
$ mkdir -p ~/.config/touchegg
$ cp /usr/share/touchegg/touchegg.conf ~/.config/touchegg/touchegg.conf
$ vi ~/.config/touchegg/touchegg.conf
Tweak to your preferences. More info here. Then add touchegg to your xinitrc if you use startx to start X, or xprofile if you use a display manager such as lighdm.
$ vi ~/.xinitrc
touchegg &
#exec startxfce4
exec startkde
#exec enlightenment_start
#exec lxde
or
$ vi ~/.xprofile
And add the line:
touchegg &
I haven’t tried this yet, but I found this. There is also apparently a package in AUR.
Currently there are some issues with the kernel. It’s old, which is a problem for bluez5. It is also not configured to play nice with systemd, which arch has migrated to qq. So we need a new one. I’m currently have one building, but it’s basically just the same one we have. Here are my plans for this. I have basically two projects. One is a set of shell scripts to automate the building of the kernel. These scripts will ideally work for any linux out there. The second is the actual kernel tree. I’m putting my work up on github so anyone can follow along. The kernel scripts are kernel-shell-game. The kernel tree is grouper-kernel.
You can try out a new kernel if you like. Check out the kernel shell games scripts. Run sudo builder.sh with the following command line options:
You will need fastboot and abootimg installed on your system for the last step and your nexus connected to the PC in fastboot/boot loader mode. You will also need the initramfs file from the boot directory in arch to be in the kernel_target directory
The process will likely be as follows:
Once the kernel is straight, then I’ll focus on getting a clean bootstrap of the root filesystem rolling. I’ll also hopefully be simplifying the instructions by providing packages to take care of a lot of the grunt work.
As far as the graphics work, the video seems fine with ubuntu so it’s probably not a kernel issue. I’ll have to take a look at their packages. Maybe we are just missing some libraries or something.
And I’ll take it from there. Maybe make a setup program so people don’t have to plug in a keyboard or a computer to get things functional. Maybe try to modify the base to replace systemd with something less gross (and less cpu->battery hungry). Maybe work on getting the kernel more vanilla to setup keeping it current instead of being tied to google. Maybe something else, who knows.
Anyhow, just wanted people to know what I was thinking, since the guide hasn’t been updated in a while. Weigh in if you like.
pacman -S wpa_supplicant
cat > /etc/wpa_supplicant.conf
network={
ssid="SSID_NAME"
psk="bleahbleah"
}
<CTRL-D>
cat > /etc/systemd/system/network-wireless@.service
[Unit]
Description=Wireless network connectivity (%i)
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/ip link set dev %i up
ExecStart=/usr/bin/wpa_supplicant -B -i %i -c /etc/wpa_supplicant.conf
ExecStart=/usr/bin/dhcpcd %i
ExecStop=/usr/bin/ip link set dev %i down
[Install]
WantedBy=multi-user.target
<CTRL-D>
pacman -S dhcpcd
pacman -S iproute2
systemctl enable network-wireless@wlan0.service
systemctl start network-wireless@wlan0.service
2013-07-20
2013-10-20
2013-10-24
2013-10-28
2013-11-03
2013-11-04
2013-11-05
2013-11-17
2013-11-18
2013-11-24
2013-12-18
2013-12-22