运行linux在de1soc,DE1-SOC记录【1】——内核与驱动更新

1、安装编译工具:arm-linux-gnueabihf-gcc

进入这个网站:https://launchpad.net/linaro-toolchain-binaries/trunk/2013.10/+download/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux.tar.bz2

然后就能获取arm-linux-gnueabihf-gcc的源码。解压在/home/yuzhiyong/software/

路径下面。接下来的配置步骤和arm-linux-gcc就是一样的了。

在root用户下使用:

打开文件:vim

/root/.bashrc ;在文件末尾添加代码:

export

PATH=/home/yuzhiyong/software/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin:$PATH

打开文件:vim

/etc/profile ;在文件末尾添加代码:

export

CROSS_COMPILE=/home/yuzhiyong/software/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin/arm

-linux-gnueabi-

export

ARCH=arm //指定CPU架构

export

LOADADDR=0x8000//指定引导地址

在普通用户下使用:

首先,以普通用户登入:输入命令,打开文件vim

~/.bashrc

,在文件末尾添加:

export

PATH=/home/yuzhiyong/software/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin:$PATH

然后,切换root用户:输入命令,打开文件vim

/etc/profile ,在文件末尾添加:

PATH=/home/yuzhiyong/software/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin:$PATH

2、获取内核源码并编译

在Linux下新建一个kernel目录,进入该目录,输入命令:

git

clone git://git.rocketboards.org/linux-socfpga.git

完成后会有一个linux-socfpga的目录,进入该目录,输入命令查看已经发布的版本:

git

branch –r

然后输入以下命令获取源码:

git

checkout -b kenel_3.12 origin/socfpga-3.12

在执行以下语句(第一个是以soc的默认配置来配置内核):

make

socfpga_defconfig//使用内核中针对于socfpga默认的配置

make

zImage //开始编译内核

完成后,在arm/arch/boot目录下面看到内核:zImage。

3、更新驱动程序

将SD卡中的zImage用自己编译的内核替换掉。插入板子可以正常运行。将驱动程序文件拷贝到虚拟机上,并且驱动目录和内核源码目录都放在/home/yuzhiyong/kernel目录下,进入驱动文件目录即可编译。将用新内核编译的驱动程序也拷贝到SD卡上。然后加载驱动程序,出现以下错误:device

or resource busy。

错误原因是:驱动程序分配的主设备号已经被占用。

使用命令:cat

/proc/devices 查看系统已经分配的设备号:发现驱动程序中分配的设备号251被占用。然后将驱动程序中的主设备号改为没被占用的250,重新编译后拷贝到SD卡。再次加载驱动程序,发现还是错误,发现是运行脚本test.sh的问题,脚本里面新建节点时也使用了主设备号,改为250后,一切运行正常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值