Wednesday, May 15, 2013

Run archlinux on PandaBoard Step by Step

Working on installing archlinux on my PandaBoard I found this site with great information,
Archlinux ARM


But, I had to do a lot of research to find more stuff I needed to actually follow these instructions.
So, I decided to document all that and add a little more to help others if they needed.  So, this is a work in progress and will be updated as I work and add to my PandaBoard.

I am running this process on Ubuntu 13.04...

You need to get these packages
PandaBoard Bootloader Tarball   will be extracted in the FAT partition
Root Filesystem Tarball                will be extracted in the ext3 partition

Use the script provided by archlinuxarm.org xmkcard.sh from the bootloader tarball to partition and format the SD Card.
You need to make the script file executable
chmod +x xmkcard.sh

Make sure you find out the name of the SD card in the dev folder
ls /dev/sd*
ls /dev/mmc*

and you can also use mount to see what name it has when it was mounted

Now you can run
sudo ./xmkcard.sh /dev/sd_name

You need to expand the two tarballs, downloaded above, one to the FAT and the other one to the ext3
Wait:
To extract the files you will need to use this command
tar -zxvf  filename.tar.gz

And you need to be root, not sudo as some files need to be created as part of the filesystem and you have to be root.

So, recent releases of Ubuntu come with root account disabled, to enable it
sudo passwd root
This will enable the root account and will ask you to set a password

and if you want to disable the root account

sudo passwd -l root

About creating boot.scr file:
This one you will need to have mkimage executable and I am still looking for it...
So, I found out that you need to install uboot-mkimage

sudo apt-get install uboot-mkimage

Now you should be able to create the boot.scr file use this command for reference
First, Create a file bootcmd  and add this to it
fatload mmc 0 0x80300000 uImage setenv bootargs console=ttyO2,115200n8 noinitrd init=/sbin/init root=/dev/mmcblk0p2 rootwait rw loglevel=8 bootm 80300000

Then type this command:
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "PandaBoard boot script" -d bootcmd boot.scr

And now, you should have the boot.scr file in the same folder of the bootcmd file, move it to the FAT partition.


Now, take your SD Card and plug it into the PandaBoard and power it up:
Make sure you connect a serial cable to the DB9 connector for output and you will see and be able to login via the terminal if you needed to, I will include a text file with a capture of all text output

PandaBoard_Debug_Out.txt


First thing you will need is to login,
username is : root
password is: root

If you need to change root password,
Type: passwd  after you login and you will be prompted to enter new password.
If you need to add new user so you do not login with the root
Type:     useradd user_name
Then change password:  passwd user_name
where user_name is the new user name you want to create

You will need to install sudo to be able to use root privilege with your new user id

How to update System in archlinux
We use pacman to install/update the system packages
So, type pacman-key --init to create pacman key first
you might need to switch to another console and type
ls -R / && ls -R / && ls -R /
now, when it is done, type pacman -Syu to update the system
It will take some time and will download and update your system
To add/install packages use pacman -S package_name

How to add your username to suders
Install sudo, modify visudo

  1. Install adduser by using pacman -S adduser
  2. Type  adduser username

and follow/answer all questions, set defaults, set password...
Now we need to edit the visudo to allow new user to use the sudo command
Type
EDITOR=nano visudo


Change hostname
Hostname is stored in the /etc/hostname file
type
sudo nano /etc/hostname
Then edit the name to the one you prefer, save and exit
Now, you will need to edit the hosts file in the same directory
sudo nano /etc/hosts
edit the like that starts with 127.0.0.1 localhost.localdomain localhost
and add your new hostname to the end
127.0.0.1 localhost.localdomain localhost New-Hostname

Install Xserver
sudo pacman -S xorg lxde xorg-twm xorg-xclock xterm xorg-xinit
> create file ~/.xinitrc in your home directory and add this line to it
exec startlxde
> there was an error not finding a cache file and I had to create it manually
OK, the file name was cookie and this is what I did
cd .config/pulse
echo > cookie
The echo command created a file cookie then I had to use nano and add the line I mentioned above
Now you should be able to use startx and get your LXDE desktop


List of items to add:
system update
network
keep boot messages on display



For reference:
Use e2label /dev/sdx1 label_name to change your partition label
Use mkfs.ext3 /dev/sdc2 to format ext3 your partion
to view your board IP address use ip add show

OK, for administration stuff:
these are files I will need to know what they do...
login.defs           login and account information
mtab
iftab                 something with network
fstab


Creating boot scripts:
/etc/profile.d/locale.sh   works, but permission denied!!!


References Used:
Archlinux ARM

http://elinux.org/ArchLinux_Install_Guide
https://wiki.archlinux.org/index.php/Beginners'_Guide


https://wiki.archlinux.org/index.php/LXDE

https://wiki.archlinux.org/index.php/Bluetooth
https://wiki.archlinux.org/index.php/Wireless_Setup


No comments:

Post a Comment