主题 : 编译210的内核有一个奇怪现像跟大家分享一下。(关于声卡部份) 复制链接 | 浏览器收藏 | 打印
级别: 骑士
UID: 24262
精华: 0
发帖: 170
金钱: 850 两
威望: 170 点
综合积分: 340 分
注册时间: 2010-07-05
最后登录: 2017-10-14
楼主  发表于: 2012-06-28 21:08

 编译210的内核有一个奇怪现像跟大家分享一下。(关于声卡部份)

开发环境:Ubuntu12.0.4
使用友善提供的arm-linux-gcc。

直接解压linux内核对源代码=>编译=>烧写到主板=>运行系统=>一切正常。
以此验证了这些代码和环境都正常。

然后我准备给这源代码加入到git进行版控制,以便跟跟踪自己的修改历史。于是我在服务器里(另一台机)建立了gitolite环境。
然后在源代码目录里执行make clean清空编译好的文件。然后增加到版本库。执行的代码大概如下:


git clone ..... (克隆版本,此时版库为空).
cp ../linux-2.6.35  .(把源代码复制过来
git add .   (把源代码加入到版本库)
git commit -m "init"

执行了以上代码后,己经可以在本地进行单机的版本管理了。
我在此时尝试编译代码看是否正常。
make zImage
然后烧写到主板,这时还是一切正常的。

于是我执行
make clean
git push origin master   (把本地的版本库提交到服务器)
make zImage
这时编译是正常的,但是烧写到主板后,ALSA就找不到WM8960了。在这个过程中我没有修改任何代码和修改任何配置。
这中间的差别只是我把代码提交到服务器了。

于是我尝试把".git"目录改名再试试
mv .git _git
make clean
make zImage
然后使用这次编译的内核,声卡又被认出来了。


我没有仔细云看内核输出的日志,没有去排错,有兴趣的兄弟可以自己验证一下。

^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
1楼  发表于: 2012-06-29 10:01
wm8960是编译成模块放到文件系统中的,理论上应该没有影响
级别: 骑士
UID: 24262
精华: 0
发帖: 170
金钱: 850 两
威望: 170 点
综合积分: 340 分
注册时间: 2010-07-05
最后登录: 2017-10-14
2楼  发表于: 2012-07-03 17:33
是的,但是这样编译的内核烧 写后,就没有加载到wm8960的驱动了,手功去加载也不行,说少了什么 文件。
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
3楼  发表于: 2012-07-03 17:44
没注意到你用了git
当kernel下有 .git 目录时,kernel版本的标识会变,通常是会多了 -gitXXXXXX,你可以在板子启动后用命令uname -r 确认这一点
所以当你 mv .git _git 后就正常了

这应该算是正常的,不是什么问题
级别: 骑士
UID: 24262
精华: 0
发帖: 170
金钱: 850 两
威望: 170 点
综合积分: 340 分
注册时间: 2010-07-05
最后登录: 2017-10-14
4楼  发表于: 2012-07-03 22:06
原来确有其事。多谢指教