CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
12
返回列表 发新帖
楼主: kc2wong

USB DAC設定

[复制链接]
发表于 2013-7-28 14:15:22 | 显示全部楼层
本帖最后由 evilforce 于 2013-7-28 14:17 编辑
kc2wong 发表于 2013-7-28 11:45
這裡列出一部份支援的USB DAC
http://www.raspyfi.com/raspberry-pi-usb-dac-and-raspyfi-supported-dacs ...

理论上不应该重启就失效。我还没有usb,所以没法测这个问题。只能找机会看看了。
内核代码的话可以从https://github.com/cubieboard2/linux-sunxi下,可以找到需要的headers。

交叉编译的脚本可以参考下面的。或者拷到sd卡做本地编译。

apt-get install gcc-arm-linux-gnueabi gcc-arm-linux-gnueabihf build-essentialapt-get install u-boot-toolsapt-get install linaro-image-toolsapt-get install libncurses5-dev

make distclean ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-make cubieboard2_defconfig ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-make menuconfig ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-make uImage -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-make modules -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-





回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-28 19:33:46 | 显示全部楼层
evilforce 发表于 2013-7-28 14:15
理论上不应该重启就失效。我还没有usb,所以没法测这个问题。只能找机会看看了。
内核代码的话可以从https ...

不好意思,第二句不太明白(應該是多行吧)

cubie@ubuntu:~/snd-usb-asyncaudio$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueab
i-
make -C /lib/modules/3.5.0-23-generic/build SUBDIRS=/home/cubie/snd-usb-asyncaud
io modules
make[1]: Entering directory `/usr/src/linux-headers-3.5.0-23-generic'
  CC [M]  /home/cubie/snd-usb-asyncaudio/chip.o
In file included from /usr/src/linux-headers-3.5.0-23-generic/arch/arm/include/a
sm/types.h:4:0,
                 from include/linux/types.h:4,
                 from include/linux/list.h:4,
                 from include/linux/module.h:9,
                 from /home/cubie/snd-usb-asyncaudio/chip.c:17:
include/asm-generic/int-ll64.h:11:29: fatal error: asm/bitsperlong.h: No such fi
le or directory
compilation terminated.
make[2]: *** [/home/cubie/snd-usb-asyncaudio/chip.o] Error 1
make[1]: *** [_module_/home/cubie/snd-usb-asyncaudio] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.5.0-23-generic'
make: *** [default] Error 2

回复 支持 反对

使用道具 举报

发表于 2013-7-29 07:17:05 | 显示全部楼层
本帖最后由 evilforce 于 2013-7-29 09:23 编辑
kc2wong 发表于 2013-7-28 19:33
不好意思,第二句不太明白(應該是多行吧)

cubie@ubuntu:~/snd-usb-asyncaudio$ make ARCH=arm CROSS_COM ...

试了下。编译需要做几个事情。(交叉编译和主机编译是不同的,下面是交叉编译(cross compile,x86 pc上编译arm)的方法)

1)编译内核。因为ko要对应内核,所以内核必须重新编
在x86 pc下
a、install toolchain(ubuntu 12.04 64bit)
apt-get install gcc-arm-linux-gnueabi gcc-arm-linux-gnueabihf build-essential
apt-get install u-boot-tools
apt-get install linaro-image-tools
apt-get install libncurses5-dev

b、compile kernel
git clone https://github.com/cubieboard2/linux-sunxi.git
cd linux-sunxi
git checkout -b sunxi-3.4-cb2-mali origin/sunxi-3.4-cb2-mali
make cubieboard2_defconfig ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-make uImage -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-make modules -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi

2)compile snd-usb-asyncaudio
git clone https://github.com/panicking/snd-usb-asyncaudio.git
cd snd-usb-asyncaudio
vi Makefile

KDIR := 上面的内核编译路径

$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-

make

启动cb前,需要把kernel,modules和snd ko一起升级。
(非交叉编译(arm上编译arm),一般是去掉CROSS_COMPILE=arm-linux-gnueabi-make ARCH=arm )

回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-29 10:05:04 | 显示全部楼层
evilforce 发表于 2013-7-29 07:17
试了下。编译需要做几个事情。(交叉编译和主机编译是不同的,下面是交叉编译(cross compile,x86 pc上编 ...

謝謝,昨晚在CB上下載了kernel的source,recompile後便可compile usb-async-audio,但還不知這個ko能不能用。估不到是這樣複雜
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-30 11:04:23 | 显示全部楼层
本帖最后由 kc2wong 于 2013-7-30 11:05 编辑
evilforce 发表于 2013-7-29 07:17
试了下。编译需要做几个事情。(交叉编译和主机编译是不同的,下面是交叉编译(cross compile,x86 pc上编 ...

按你的教學在ubuntu上cross compile了kernel

makefile也修改為
# KDIR := /lib/modules/$(shell uname -r)/build
KDIR := /home/cubie/linux-sunxi

但compile snd-usb-asyncaudio時有些warning(在CB上compile是沒有這些warning),ko file的size也跟我在CB上compile的不同,是否在cross compile kernel時出了問題 ?

/home/cubie/snd-usb-asyncaudio/pcm.c: In function ‘hiface_pcm_open’:
/home/cubie/snd-usb-asyncaudio/pcm.c:385:8: warning: passing argument 4 of ‘snd_pcm_hw_constraint_list’ discards ‘const’ qualifier from pointer target type [enabled by default]
include/sound/pcm.h:810:5: note: expected ‘struct snd_pcm_hw_constraint_list *’ but argument is of type ‘const struct snd_pcm_hw_constraint_list *’


cubie@ubuntu:~/snd-usb-asyncaudio$ ls -l *.ko
-rw-rw-r-- 1 cubie cubie 240294 Jul 30 11:05 snd-usb-hiface.ko
cubie@ubuntu:~/snd-usb-asyncaudio$


回复 支持 反对

使用道具 举报

发表于 2013-7-30 21:31:42 | 显示全部楼层
kc2wong 发表于 2013-7-30 11:04
按你的教學在ubuntu上cross compile了kernel

makefile也修改為

看上去似乎没啥问题。看看实际使用如何。
一般有差异可能有2个地方。一共是内核看看是不是一致,这个错误用到了内核的函数。另一个就是gcc的版本是不是一致,不同的gcc版本可能对告警处理会有差异。
回复 支持 反对

使用道具 举报

发表于 2013-7-31 17:01:31 | 显示全部楼层
静待高手研究搞定。
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-5-19 02:47 , Processed in 0.020017 second(s), 12 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部