为pcDuino安装Archlinux

晒不死的鱼 发布于 2013/12/19 15:25
阅读 2K+
收藏 1

Arch Linux(或称Arch)是一种以轻量简洁为设计理念的Linux发行版。其开发团队秉承简洁、优雅、正确和代码最小化的设计宗旨。创始人Judd Vinet出于对Debian以及Red Hat的包管理器不满,以及受CRUX影响而创立。最初针对i686,但是如今对x86_64也支持良好,而且还派生出了针对ARM平台的Arch Linux ARM以及针对HURD内核的Arch Hurd(发展缓慢)。

在这里,我们提供了一种为pcDuino制作ArchLinux的镜像的方法。

在整个制作的过程中,我们将会用到一个x86的 Linux Virtual Box, 一台跑着 官方Ubuntu系统的pcDuino做为编译服务器, 一个pcDuino做为目标机。archlinux

准备阶段

一、工具准备:

1、 装有ubuntux86_64的主机一台,建议用virtualbox安装64ubuntu

2、 大于2GTF卡一张;

3、 串口调试线;

4、HDMI线、显示器;

5、现场能够通过网线接路由器;

二、系统安装准备:

1、将pcDuino装最新的ubuntu系统;

2、将TF卡安装最新的从TF卡启动的ubuntu系统。

制作基础固件

本节操作全部在x86_64ubuntu上执行,请提前装好系统,具体的你可以参考附件一。

具体操作:

1、先编译内核。具体的编译方法请参照http://cnlearn.linksprite.com/?p=1013编译的目的是为了得到pcduino_a10_hwpack_YYYYMMDD.tar.xz,里面有系统启动所需的uImageko文件。如果你的电脑之前已经下载过内核,建议你在内核的kernel的目录下执行:git  pull  。这样和内核最新的修复保持同步。

2, 建立基础固件。

sudo su

mkdir   ~/archlinux

cd  ~/archlinux

archlinux官网上下载archlinux for sun4i的固件,

wget http://archlinuxarm.org/os/ArchLinuxARM-sun4i-latest.tar.gz

建一个空的img镜像

dd if=/dev/zero    of=archlinux.img   bs=1M count=1800

格式化镜像为ext3格式

mke2fs -t ext3 archlinux.img

挂载新建的镜像

sudo mount  -t  ext3  -o   loop  archlinux.img  /mnt

sudo  tar xvf ArchLinuxARM-sun4i-latest.tar.gz -C  /mnt

更改驱动,这时候需要把编译出来pcduino_a10_hwpack_20131103.tar.xz在kernel/output/目录下

tar xvf pcduino_a10_hwpack_20131103.tar.xz

rm /mnt/lib/modules/* -rf

cp rootfs/lib/modules/3.4.29+/ /mnt/lib/modules/ -rf

里面的rootfs解压出来,替换掉/mnt相应的位置。

解除挂载

sudo umount /mnt

修改update.sh

vim update.sh

3 IMG=archlinux.img

把第三行的位置,换成archlinux.img。这一步操作要注意了,不能在windows里面打开update.shwindows里面的文本编码和linux是不一样的,在windows里面打开之后你升级之后就找不到update.sh

把基础系统烧录到板子上,

pcduino_a10_kernel_livesuit_20131103.img用Phoenixcard烧写到SD卡上,

烧写完之后格式化SD卡将archlinux.imgupdate.sh拷贝到SD里面刷机。

具体刷机方式请参照:

http://cnlearn.linksprite.com/?p=183

这里使用的是安装ubuntunand flash的操作方法。

搭建基础系统

通过前面一步,现在你的板子上面已经运行了archlinux基础系统,

输入用户名:root

密码:root

就可以登录系统了。本节内容将全部在这个基础系统中进行,进一步完善这个基础系统。

具体操作

1、 更新系统

pacman  -Syyu

2、 创建普通用户

useradd -m -s /bin/bash archlinux

3、 设置密码

passwd  archlinux

4、 安装sudo,可以上普通用户执行root命令

pacman –S sudo

5、为刚才添加的普通用户添加sudo的相关权限

visudo

##

## User privilege specification

##

root ALL=(ALL) ALL

archlinux ALL=(ALL) ALL

5、 为系统添加动态驱动模块

nano /etc/modules-load.d/modules.conf

GNU nano 2.2.6       File: /etc/modules-load.d/moules.conf

lcd

hdmi

ump

disp

disp_ump

mali

mali_drm

8192cu

rt5370sta

添加完之后重启:

sudo reboot

[archlinux@alarm ~]$ lsmod

Module                  Size  Used by

8192cu                536896  0

mali_drm                2087  0

drm                   156908  1 mali_drm

mali                   91146  0

disp_ump                 823  0

ump                    43846  2 mali,disp_ump

6、 安装openssh,便于远程连接

pacman  -s  openssh

systemctl enable sshd  #让系统启动时自动启动openssh

ifconfig

[archlinux@alarm ~]$ ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

inet 192.168.1.134  netmask 255.255.255.0  broadcast 255.255.255.255

inet6 fe80::d09a:3bff:fe04:941f  prefixlen 64  scopeid 0×20<link>

ether d2:9a:3b:04:94:1f  txqueuelen 1000  (Ethernet)

RX packets 205  bytes 22158 (21.6 KiB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 29  bytes 2313 (2.2 KiB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

device interrupt 55  base 0xb000

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 16436

inet 127.0.0.1  netmask 255.0.0.0

inet6 ::1  prefixlen 128  scopeid 0×10<host>

loop  txqueuelen 0  (Local Loopback)

RX packets 0  bytes 0 (0.0 B)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 0  bytes 0 (0.0 B)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

#记住IP : 192.168.1.134

安装显卡驱动

通过第上一步操作,你的系统现在已经很完整了,你现在可以用putty这样的工具去连接你的archlinux。但是系统还是命令行界面,没有桌面,下面本节就是如果给archlinux安装桌面。为了避免你的系统过于臃肿,本节所有驱动源码,都是事先配置好的,具体的配置过程,过于繁杂,这里不再介绍,你可以到我提供的git hub上面下载配置好的驱动源码。

具体操作

1、 安装编译工具,下载比较慢,如果中途因为你网速慢而终止下载,你可以重新执行该命令

pacman  -S  gcc make

2、 安装桌面

pacman -S xorg-server xorg-server-utils xorg-xinit

pacman  -S  xfce4

3、 给驱动添加权限

cd  /etc/udev/rules.d/

sudo nano 50-mali.rules

KERNEL==”mali”, MODE=”0660″, GROUP=”video”

KERNEL==”ump”, MODE=”0660″, GROUP=”video”

4、安装依赖文件

sudo pacman -S automake autoconf

sudo pacman -S libdri2

sudo pacman -S pkg-config

sudo pacman -S xorg-util-macros libtool xorg-server-devel pyxdg

sudo pacman -S xorg-server xorg-server-utils xorg-xinit

sudo pacman -S dri2proto git

5、安装libdri2

git clone https://github.com/robclark/libdri2

cd libdri2

./ autogen .sh

sudo make  install

6、 安装gpu驱动sunxi-mali

git clone https://github.com/linux-sunxi/sunxi-mali.git

cd sunxi-mali

git submodule init

git submodule update

sudo make install

7、 安装xf86-video-sunxifb

git clone  https://github.com/Pillar1989/xf86-video-mali   #这里面是我修改过的

sudo make install

8make install的安装路径archlinux的桌面是加载不了的

cd xf86-video-mali

sudo  cp src/.libs/mali_drv.so  /usr/lib/xorg/modules/dri/

cd  ../

cp  src/.libs/*    /usr/lib/xorg/modules/dri/

cd  /usr/lib/xorg/modules/dri/

sudo  ln -s  libdri2.so.1.0.0 libdri2.so.1

9、测试

startxfce4

配置桌面

1、 设置屏幕脚本

cd   xf86-video-mali

sudo  cp set_window.sh /usr/bin/

sudo  setwindow  /usr/bin/

2、屏幕位置不对,有偏移,或者不能全屏,执行

setwindow 100 1 0 0

Arduino SDK

Uname a查看一下你的内核的版本

Linux alarm 3.4.29+ #1 PREEMPT Sun Nov 3 11:00:11 CST 2013 armv7l GNU/Linux

如果还是3.4.29+,那么你可以直接把ubuntupcDuino的系统里面的hardwarelib拷贝到archlinux相应的位置。

然后在/etc/modules-load.d/modules.conf里面添加内容如下:

hdmi

ump

disp

disp_ump

mali

mali_drm

8192cu

sw_interrupt

gpio

pwm

adc

设置XFCE4开机启动

Linux发行版有个典型的特点,就是有登陆管理器和桌面常用的archlinux的登陆管理器有下面这些:

XDM: X 显示管理器 (xorg-xdm)

GDM: GNOME 显示管理器 (gdm)

KDM: KDE 显示管理器 (kdebase-workspace)

SLiM: 简单登录管理器 (slim)

LXDM: LXDE 显示管理器 (独立于桌面环境) (lxdm)

Qingy: getty 使用 DirectFB 的替代者 (qingy)

wdm: WINGs 显示管理器 (wdm)

CDM: 控制台显示管理器 (available in the AUR: cdm-git)

LightDM: Ubuntu 开发的 GDM 替代品,使用 WebKit (位于AUR: lightdm, lightdm-bzr)

其中slimlightdm是轻量级的,占用flash比较小,此固件中使用slim

桌面有三种,一种是openbox这种也是轻量级的,占用flash比较小,还有另外两种,是xfce4gnome,这两种占用资源比较大。

此固件里面有两种桌面,一种是openbox,一种是xfce4。你可以在登陆界面上面切换。

设置桌面开机启动:

sudo  pacman -S slim

sudo  systemctl enable slim.service

可能的错误

屏幕提示failed to execute login command!

解决办法:

nano .xinitrc

#!/bin/sh

#

# ~/.xinitrc

#

# Executed by startx (run your window manager from here)

if [ -d /etc/X11/xinit/xinitrc.d ]; then

for f in /etc/X11/xinit/xinitrc.d/*; do

[ -x "$f" ] && . ”$f”

done

unset f

fi

# exec gnome-session

# exec startkde

exec startxfce4

# …or the Window Manager of your choice

重新登录!

安装浏览器

一个系统是必须要浏览器的,还有flash可以在线看视频!

pacman -S chromium chromium-pepper-flash

清理系统

sudo pacman -Scc

sudo pacman –Sc

清理后

[root@alarm archlinux]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/nandd      1.8G  1.4G  269M  85% /

none            406M     0  406M   0% /dev

devtmpfs        406M     0  406M   0% /dev

tmpfs           407M     0  407M   0% /dev/shm

tmpfs           407M  1.4M  406M   1% /run

tmpfs           407M     0  407M   0% /sys/fs/cgroup

tmpfs           407M  8.0K  407M   1% /tmp

发布系统

插入SD卡并挂载

sudo   mount /dev/ mmcblk0p1 /mnt

sudo  cd /mnt

sudo  dd if=/dev/nandd of=archlinux.img  bs=1M

附录一

archlinux软件管理pacman使用方法:

要完全了解pacman可以做什么,请阅读man pacman[1]。下面只是一个可执行操作的小示范。

安装和删除包

安装和升级软件包前,先让本地的包数据库和远程的软件仓库同步是个好习惯。

pacman -Syu

或者

pacman –sync –refresh

安装或者升级单个软件包,或者一列软件包(包含依赖包),使用如下命令:

pacman -S package_name1 package_name2

有时候在不同的软件仓库中,一个软件包有多个版本(比如extratesting)。你可以选择一个来安装:

pacman -S extra/package_name

pacman -S testing/package_name

你也可以在一个命令里同步包数据库并且安装一个软件包:

pacman -Sy package_name

删除单个软件包,保留其全部已经安装的依赖关系

pacman -R package_name

删除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系:

pacman -Rs package_name

升级系统

Pacman能够只用一个指令来升级系统中所有已安装的包。升级的时间取决于你的系统有多新。

pacman -Su

当然,最好做法的是将升级系统和同步仓库数据合成为一条指令:

pacman -Syu

包数据库

Pacman可以用 -Q 标志搜索和查询本地包数据库。见

pacman -Q –help

或者更详细的 pacman(8) manpage。同步数据库可以用 -S 标志搜索和查询。或者见刚提及的 manpage 或者

pacman -S –help

查看详情。

附录二

我们都知道在开发软件之前需要安装嵌入式开发环境。而产品 ISO文件中提供的开发环境(linux/source目录下)需要在Linux 系统下才能运行。如果当前您使用的是Windows系统,那么首先需要安装 Linux 操作系统,然后才能在该系统下安装相应的开发环境。我们推荐使用VirtualBox虚拟机来在Windows中安装 Ubuntu Linux 操作系统。下面我们将依次介绍虚拟机VirtualBox Ubuntu Linux系统的安装过程。

一、安装 VirtualBox 虚拟机:

您可以访问 http://www.virtualbox.org/wiki/Downloads 来下载最新版本的 VirtualBox虚拟机。在安装 VirtualBox 虚拟机之前,请确保您的 PC 拥有至少 512MB 的内存空间。

建议提供1G以上的内存空间。 

1)  安装过程很简单,此处略过。安装后从开始菜单启动VirtualBox,然后单击程序窗口上方的New 按钮,弹出新建虚拟机窗口;2

图 1  新建虚拟机窗口

单击Next 按钮开始新建虚拟机。

2)  在下方窗口中为新建的虚拟机指定名称和操作系统类型;3

图 2  虚拟机名称和操作系统类型

您可以在Name 一栏中输入新建虚拟机的名称,例如Ubuntu。在 Operating System一栏中选择Linux,然后单击Next按钮。 

3)  在以下窗口中为虚拟机分配适当大小的内存空间,分配完成后单击Next按钮;4

图 3  内存分配窗口

注意:

如果您的 PC 内存为 1G 或者更少,请保留默认设置;

如果您的 PC 内存超过 1G,则可以将 1/4 或者更少的内存分配给虚拟机,例如 PC 内存为 2G,则将 512MB 的内存分配给虚拟机。

4)  如果这是您第一次使用 VirtualBox,请在下方窗口中选择 Create  new hard disk选项,然后单击 Next按钮;5

图 4  创建新的虚拟硬盘窗口

5)  在下方虚拟硬盘创建向导窗口中单击 Next按钮;

6

图 5  虚拟硬盘创建向导

6)  在下方窗口中选择Fixed-size storage选项,并单击Next按钮;

7

图 6  选择第二个选项

7)  在下方窗口中指定硬盘数据的存储位置以及默认虚拟硬盘的容量(至少 8G),然后单击Next按钮;9

图 7  虚拟硬盘设置窗口

8)  在下方的虚拟硬盘信息窗口中单击Finish按钮;

10

图 8  虚拟硬盘信息

9)  PC 开始创建虚拟硬盘驱动器;11

图 9  创建虚拟硬盘驱动器

10)  完成驱动器创建后会显示摘要信息。请单击完成按钮即完成虚拟机安装过程;12

图 10  虚拟机配置完成

二、安装 Ubuntu Linux 系统

虚拟机安装完成后,我们就可以开始安装 Ubuntu Linux 系统了。首先请访问http://www.Ubuntu.com/download/Ubuntu/download,下载 Ubuntu 的 ISO 映像文件,然后按照以下步骤进行安装。

1)  从开始菜单启动 VirtualBox,然后在程序窗口上方单击Setting按钮,弹出虚拟机设置窗口,如下图所示;1

图1 虚拟机设置窗口

2)  在窗口左方选择Storage选项,然后单击 IDC控制器下Empty文字右方的光盘图标来指定Ubuntu映像文件的位置,如下图所示;2

图 2  指定Ubuntu映像位置

3)  选中刚才添加的映像并单击 OK按钮,如下图所示;3

图3

4)  单击 VirtualBox 窗口上方的 Start 按钮,屏幕会弹出 Ubuntu 的安装初始化窗口,如下图所示;

4

图 4  Ubuntu 初始化窗口

5)  在出现以下窗口时单击 Install Ubuntu 进行安装,如下图所示;5

图 5

6)  单击Forward 按钮继续安装,如下图所示;7

图 6  安装前的信息

7)  选择Erase disk and install Ubuntu选项,并单击Forward 按钮。8

图 7  Ubuntu 安装选项

注意:

选择该选项并不会删除硬盘上物理分区中的任何内容。

8)  单击下方窗口中的 Install Now 按钮开始安装Ubuntu10

图 8  安装确认窗口

9)  在安装过程中安装程序会询问一些简单的问题,请输入相应的信息并单击Forward按钮即可。安装过程中的最后一个问题窗口如下图所示;11

图 9  指定用户名和密码

在相应的文本框内输入用户名和密码后,选择 Log in automatically选项并单击Forward 按钮。

10)  Ubuntu 的安装依据不同的 PC性能可能需要15分钟至小时左右。安装完成后会弹出如下图所示的提示窗口,请选择Restart Now重新启动Ubuntu系统;12

图 10  重新启动系统

11)  重新启动后就可以使用 Ubuntu 系统了。通常在重新启动 Ubuntu 系 统后VirtualBox 会自动弹出图  3 中载入的映像文件,如果没有自动弹出,您可以在VirtualBox的Setting窗口中手动弹出该映 像,使IDE控制器下显示为Empty,如下图所示;13

图 11



加载中
0
张亦俊
张亦俊

我就来问一句,这玩意跑xfce卡么?

晒不死的鱼
晒不死的鱼
经过小伙伴测试,完美运行,还能在线看优酷。
返回顶部
顶部