Firefly开源社区

打印 上一主题 下一主题

Archlinux ARM for Firefly-RK3288

600

积分

21

威望

25

贡献

技术大神

Rank: 3Rank: 3

积分
600

活跃会员

Archlinux ARM for Firefly-RK3288

发表于 2016-1-31 14:12:56      浏览:15956 | 回复:7        打印      只看该作者   [复制链接] 楼主
本帖最后由 linjc 于 2016-1-31 17:29 编辑

Arch Linux是起源于加拿大的一份致力于使用简单、系统轻量、软件更新速度快的 GNU/LINUX发行版,它不仅支持i686,x86_64的PC,现在还派生出针对ARM平台的Arch Linux ARM。使用过Archlinux的人应该知道,使用Archlinux比较折腾,这主要因为它的简洁,安装完Archlinux就只有最基本的工具,连图形化界面都没有。但也因为它这个特点,用户才可以根据自己的喜好定制一个属于自己的linux,因此也深受一些喜欢定制自己工作环境的开发者喜爱。Archlinux arm可以在树莓派上运行,而且前阵子看到有网友tlgimenes在firefly-rk3288上也跑了:链接,因此本人也试了一下,在这里把我移植的过程分享一下。
1.把板子烧成firefly-rk3288官方的ubuntu单系统固件;
2.下载miniroot文件:链接,把linux-boot-miniroot.img烧到boot分区(0xA000)

3.重启板子,进入miniroot模式
  1. miniroot#
复制代码
4.
在官方的linux单系统中,/dev/mmcblk0p5分区就是存储linux文件系统的,我们就在此分区创建ext4文件系统,用于存放新的archlinux文件系统,这里把它挂载到/mnt
  1. miniroot# mkfs.ext4 -E nodiscard /dev/mmcblk0p5
  2. miniroot# mount /dev/mmcblk0p5 /mnt/
复制代码
5.
接上以太网,打开网络,下载archlinux文件系统(你也可以直接到archlinuxarm.org把文件包下载下来)
  1. miniroot# udhcpc
  2. miniroot# wget –P /mnt http://archlinuxarm.org/os/ArchLinuxARM-veyron-latest.tar.gz
复制代码
6.解压

  1. miniroot# cd /mnt/
  2. miniroot# tar -xzf ArchLinuxARM-veyron-latest.tar.gz
复制代码
7.
切换到archlinu 并新增用户:
  1. miniroot# chroot /mnt/
  2. [root@miniroot /]# useradd -m -s /bin/bash firefly
  3. [root@miniroot /]# passwd firefly
复制代码
8.
修改hostname:
  1. [root@miniroot /]# vi /etc/hostname
复制代码
9.
archlinux是用systemd来启动系统服务的,为了启动archlinux时能正常使用串口,这里需要做一点修改:
  1. [root@miniroot /]# cp /lib/systemd/system/serial-getty\@.service /lib/systemd/system/serial-getty@ttyS2.service
  2. [root@miniroot /]vi /lib/systemd/system/serial-getty@ttyS2.service (把里面的“%i.device”改为“%i”)
  3. [root@miniroot /]# systemctl enable serial-getty@ttyS2.service
复制代码
注:官方的内核把ttyS2改为FIQ0了,所以我固件里还是把ttyS2改成FIQ0了,如果你用的是最新内核,请用FIQ0。

10.如果以上步骤都顺利通过,可以在这里先启动archlinux试试了:
  1. [root@miniroot /]# exit
  2. miniroot# boot /mnt: /lib/systemd/systemd
复制代码
11.
进入系统后可以用刚刚添加的用户名firefly进入了
  1. Arch login: firefly
  2. Password
复制代码
12.进入root用户,
archlinux默认的root用户默认密码为root
  1. [firefly@Arch ~]$ su
  2. Password:
  3. [root@Arch firefly]#
复制代码
13.
开机启动网络服务:
  1. [root@Arch firefly]# systemctl enable dhcpcd.service
  2. [root@Arch firefly]# systemctl start dhcpcd.service
复制代码
14.
更新系统:
  1. [root@Arch firefly]# pacman –Syu
复制代码
注意:更新的时候会出现以下提示,要选择n,要不你会前功尽弃:
  1. >>> Updating module dependencies. Please wait ...
  2. A new kernel version needs to be flashed onto /dev/mmcblk0p5.
  3. Do you want to do this now? [y|N]
  4. N
复制代码

15.
为了操作方便,这里安装sudo:
  1. [root@Arch firefly]# pacman -S sudo
复制代码
编辑sudo配置文件,添加用户权限:
  1. [root@Arch firefly]# visudo
  2. firefly ALL=(ALL) ALL
复制代码
16.
添加wifi功能:
网友[url=]tlgimenes[/url]在添加wifi功能的时候使用了libhybris,这里提供一种更方便的方法
从官方的ubuntu固件中拷贝/system/arhclinux根文件系统目录:
  1. [root@Arch firefly]# cp -r system/ /
复制代码
从官方的ubuntu固件中拷贝wifi启动及关闭脚本到archlinux对应目录:
  1. [root@Arch firefly]# cp wifi-on.sh /usr/local/bin/
  2. [root@Arch firefly]# cp wifi-off.sh /usr/local/bin/
复制代码
编辑systemdservice文件:
  1. [root@Arch firefly]# vi /lib/systemd/system/wifi-on.service
复制代码
启动wifi服务:
  1. [root@Arch firefly]# systemctl enable wifi-on.service
复制代码
17.
添加蓝牙功能:
安装bluez
  1. [root@Arch firefly]# pacman -S bluez
  2. [root@Arch firefly]# pacman -S bluez-utils
复制代码
添加配置文件(文件内容有点多,这里不列出来,可从我制作的文件系统里面获得,这里我把蓝牙相关文件放在u盘,并挂载到/media
  1. [root@Arch firefly]# cp /media/bluetooth-brcm /etc/default/bluetooth-brcm
复制代码
添加蓝牙启动脚本:
  1. [root@Arch firefly]# cp /media/do-brcm-patchram-plus.sh /usr/local/bin/
复制代码
开机启动蓝牙服务:
  1. [root@Arch firefly]# systemctl enable bluetooth-brcm-firmware.service
  2. [root@Arch firefly]# systemctl enable bluetooth.service
复制代码
18.
如果你想把你制作的文件系统做成一个完整的固件,有一步是必不可少的,那就是第一次启动系统的时候要resize文件系统对应的分区,这里我们在第一次开机的时候启动一个脚本来实现:
  1. [root@Arch firefly]# touch /firstboot
  2. [root@Arch firefly]# vi /usr/local/bin/first-boot.sh
  3. [root@Arch firefly]# chmod a+x /usr/local/bin/first-boot.sh
  4. [root@Arch firefly]# vi /lib/systemd/system/rc.local.service (具体内容从我制作的文件系统里面获得)
复制代码
开机启动该服务:

  1. [root@Arch firefly]# systemctl enable rc.local.service
复制代码
19.
打包固件之前,为了减小固件的体积,可以把无用的安装包删掉,如:
  1. [root@Arch firefly]# rm /var/cache/pacman/pkg/*
复制代码
20.打包(这里我用u盘存放我的文件系统镜像,即/dev/sda)
重启板子之后再次进入miniroot

  1. miniroot# mount /dev/mmcblk0p5 /mnt/
  2. miniroot# mkdir /media
  3. miniroot# mount /dev/sda /media/
  4. miniroot# dd if=/dev/zero of=/media/linuxroot.img bs=1M count=1024
  5. miniroot# mkfs.ext4 -F -L linuxroot /media/linuxroot.img
  6. miniroot# mkdir tmp
  7. miniroot# mount -o loop /media/linuxroot.img /tmp/
  8. miniroot# cp -a /mnt/* /tmp/
  9. miniroot# umount /tmp/
  10. miniroot# umount /media/
  11. miniroot# umount /mnt/
复制代码
走到这里,u盘里的linuxroot.img就是制作好的archlinux文件系统了。

21.烧写及制作成统一镜像:
制作成文件系统后可以直接烧到板子对应的linuxroot分区,具体请阅读官方wiki
我这里修改了一下官方的AndroidTool烧写工具,只要把你制作的文件,包括:linuxroot.img,linux-boot.img,resource.img,misc_zero.img 放入rockdev/Image/再执行mkupdate.bat就可以在rockdev/下生成一个update.img
22.如果想直接在板子上运行archlinux,可以配置miniroot开机自启动archlinux,修改如下:
  1. miniroot# editenv
  2. root=/dev/mmcblk0p5:
  3. init=/sbin/init
  4. #ethaddr=00:11:22:33:44:55
  5. #fbset_args="-a -nonstd 1 -g 1920 1080 1920 1080 32 -rgba 8/0,8/8,8/16,8/24"
  6. #fbset_args="-a -nonstd 4 -g 1280 720 1280 720 16 -rgba 5/11,6/5,5/0,0/0"
  7. autoboot=1
  8. miniroot# saveenv
  9. miniroot# reboot –f
复制代码
启动后自动进入archlinux
如果不想自动进入archlinux,开机进入miniroot,可以做以下操作:
  1. [root@Arch firefly]# dd if=/dev/zero of=/dev/block/mtd/by-name/misc
复制代码


我这里只是移植了一个最基本的archlinux文件系统,如果要做成一个完善的系统,还需要安装配置很多东西,下面的就由大家自己折腾啦!希望你折腾之后也把你的东西给大家分享分享,就像这位网友:tlgimenes 这里感谢他的分享。
固件链接: http://pan.baidu.com/s/1bomaoVH 密码: mpfk
这里再分享一个加了xfce桌面环境的文件系统:
链接: http://pan.baidu.com/s/1numvXrV 密码: g82u
回复

使用道具 举报

239

积分

0

威望

0

贡献

禁止发言

积分
239
发表于 2016-2-17 15:47:00        只看该作者  推荐
linjc 发表于 2016-2-15 15:35
想法不错,有空再试试,kalilinux 好像也支持arm,移植的原理都差不多的,你也可以试试啊

kali-linux 是支持arm的 https://github.com/offensive-security/kali-arm-build-scripts
就是不知道如何移植,从来没有搞过这个方向。期待兄弟搞好的image。
回复

使用道具 举报

1225

积分

1

威望

3

贡献

中级创客

Rank: 4

积分
1225
QQ
发表于 2016-1-31 14:17:50        只看该作者  沙发
{:3_41:}
回复

使用道具 举报

发表于 2016-1-31 15:05:55        只看该作者  板凳
支持原创!
暴走的创客!
回复

使用道具 举报

239

积分

0

威望

0

贡献

禁止发言

积分
239
发表于 2016-2-11 10:44:35        只看该作者  地板
系统楼主能够增加 Kali 系统的输入教程   www.kali.org
回复

使用道具 举报

600

积分

21

威望

25

贡献

技术大神

Rank: 3Rank: 3

积分
600

活跃会员

发表于 2016-2-15 09:15:51        只看该作者  5#
ohyeah521 发表于 2016-2-11 10:44
系统楼主能够增加 Kali 系统的输入教程   www.kali.org

玩渗透测试?{:3_41:}
回复

使用道具 举报

239

积分

0

威望

0

贡献

禁止发言

积分
239
发表于 2016-2-15 15:26:37        只看该作者  6#

对,找了好久,没有合适的板子,就firefly-rk3288的性能还不错。配上屏幕,电池就可以做一个便携的渗透设备了
回复

使用道具 举报

600

积分

21

威望

25

贡献

技术大神

Rank: 3Rank: 3

积分
600

活跃会员

发表于 2016-2-15 15:35:45        只看该作者  7#
ohyeah521 发表于 2016-2-15 15:26
对,找了好久,没有合适的板子,就firefly-rk3288的性能还不错。配上屏幕,电池就可以做一个便携的渗透设 ...

想法不错,有空再试试,kalilinux 好像也支持arm,移植的原理都差不多的,你也可以试试啊:D
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表