guo-yu / douban.fm

a tiny and smart cli player of douban.fm in Node.js
MIT License
1.6k stars 210 forks source link

尝试用Docker生成镜像,不知道要怎么加载声卡驱动 #143

Open samblabla opened 9 years ago

samblabla commented 9 years ago

root@ecee768c0bda:/# cnpm install speaker --mpg123-backend=openal

speaker@0.2.5 install /node_modules/speaker node-gyp rebuild

make: Entering directory /node_modules/speaker/build' CC(target) Release/obj.target/output/deps/mpg123/src/output/openal.o ../deps/mpg123/src/output/openal.c:13:24: fatal error: OpenAL/al.h: No such file or directory compilation terminated. make: *** [Release/obj.target/output/deps/mpg123/src/output/openal.o] Error 1 make: Leaving directory/node_modules/speaker/build' gyp ERR! build error gyp ERR! stack Error: make failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/nodejs/lib/node_modules/cnpm/node_modules/node-gyp/lib/build.js:270:23) gyp ERR! stack at ChildProcess.emit (events.js:98:17) gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:820:12) gyp ERR! System Linux 4.0.9-boot2docker gyp ERR! command "node" "/nodejs/lib/node_modules/cnpm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /node_modules/speaker gyp ERR! node -v v0.10.40 gyp ERR! node-gyp -v v3.0.3 gyp ERR! not ok npm ERR! Linux 4.0.9-boot2docker npm ERR! argv "node" "/nodejs/lib/node_modules/cnpm/node_modules/.bin/npm" "--userconfig=/root/.cnpmrc" "--disturl=https://npm.taobao.org/mirrors/node" "--cache=/root/.cnpm" "--registry=https://registry.npm.taobao.org" "--node-gyp=/nodejs/lib/node_modules/cnpm/node_modules/node-gyp/bin/node-gyp.js" "install" "speaker" "--mpg123-backend=openal" npm ERR! node v0.10.40 npm ERR! npm v2.14.5 npm ERR! code ELIFECYCLE

npm ERR! speaker@0.2.5 install: node-gyp rebuild npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the speaker@0.2.5 install script 'node-gyp rebuild'. npm ERR! This is most likely a problem with the speaker package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! node-gyp rebuild npm ERR! You can get their info via: npm ERR! npm owner ls speaker npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request: npm ERR! /npm-debug.log root@ecee768c0bda:/# lspci -v bash: lspci: command not found root@ecee768c0bda:/# ls -a /usr/src/linux ls: cannot access /usr/src/linux: No such file or directory

guo-yu commented 9 years ago

目前 Docker image 还不支持操作宿主机的声卡

samblabla commented 9 years ago

@guo-yu 使用 douban.fm提供的 Dockerfile ,生成的镜像不能正常使用

samblabla commented 9 years ago

CC(target) Release/obj.target/mp3lame/deps/lame/libmp3lame/quantize.o ../deps/lame/libmp3lame/quantize.c: In function 'VBR_new_iteration_loop': ../deps/lame/libmp3lame/quantize.c:1734:28: warning: variable 'fullframebits' set but not used [-Wunused-but-set-variable] int mean_bits, fullframebits; ^ npm http 200 http://r.cnpmjs.org/es6-iterator npm http GET http://r.cnpmjs.org/es6-iterator/download/es6-iterator-0.1.3.tgz npm http 200 http://r.cnpmjs.org/es6-symbol/download/es6-symbol-2.0.1.tgz CC(target) Release/obj.target/mp3lame/deps/lame/libmp3lame/quantize_pvt.o npm http 200 http://r.cnpmjs.org/es6-iterator/download/es6-iterator-0.1.3.tgz CC(target) Release/obj.target/mp3lame/deps/lame/libmp3lame/reservoir.o CC(target) Release/obj.target/mp3lame/deps/lame/libmp3lame/set_get.o CC(target) Release/obj.target/mp3lame/deps/lame/libmp3lame/tables.o CC(target) Release/obj.target/mp3lame/deps/lame/libmp3lame/takehiro.o CC(target) Release/obj.target/mp3lame/deps/lame/libmp3lame/util.o CC(target) Release/obj.target/mp3lame/deps/lame/libmp3lame/vbrquantize.o CC(target) Release/obj.target/mp3lame/deps/lame/libmp3lame/version.o AR(target) Release/obj.target/deps/lame/libmp3lame.a COPY Release/libmp3lame.a CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/compat.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/parse.o ../deps/mpg123/src/libmpg123/parse.c: In function 'check_lame_tag': ../deps/mpg123/src/libmpg123/parse.c:184:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if(fr->track_frames > TRACK_MAX_FRAMES) fr->trackframes = 0; /* endless stream? / ^ ../deps/mpg123/src/libmpg123/parse.c: In function 'handle_id3v2': ../deps/mpg123/src/libmpg123/parse.c:1013:31: warning: suggest braces around empty body in an 'else' statement [-Wempty-body] else debug("no useful ID3v2"); ^ ../deps/mpg123/src/libmpg123/parse.c: In function 'skip_junk': ../deps/mpg123/src/libmpg123/parse.c:1081:71: warning: suggest braces around empty body in an 'else' statement [-Wempty-body] else debug1("hopefully found one at %"OFF_P, (off_p)fr->rd->tell(fr)); ^ ../deps/mpg123/src/libmpg123/parse.c: In function 'wetwork': ../deps/mpg123/src/libmpg123/parse.c:1149:114: warning: suggest braces around empty body in an 'if' statement [-Wempty-body] if(VERBOSE3) debug3("resync try %li at %"OFF_P", got newhead 0x%08lx", try, (off_p)fr->rd->tell(fr), newhead); ^ CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/frame.o ../deps/mpg123/src/libmpg123/frame.c: In function 'INT123_frame_buffers': ../deps/mpg123/src/libmpg123/frame.c:285:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if(2_2_0x110_sizeof(real) > buffssize) ^ CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/format.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/dct64.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/equalizer.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/id3.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/optimize.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/readers.o ../deps/mpg123/src/libmpg123/readers.c: In function 'plain_read': ../deps/mpg123/src/libmpg123/readers.c:60:70: warning: suggest braces around empty body in an 'if' statement [-Wempty-body] if(VERBOSE3) debug2("read %li bytes of %li", (long)ret, (long)count); ^ ../deps/mpg123/src/libmpg123/readers.c: In function 'bc_add': ../deps/mpg123/src/libmpg123/readers.c:630:93: warning: suggest braces around empty body in an 'if' statement [-Wempty-body] if(size >=4) debug4("first bytes: %02x %02x %02x %02x", data[0], data[1], data[2], data[3]); ^ ../deps/mpg123/src/libmpg123/readers.c: In function 'bc_forget': ../deps/mpg123/src/libmpg123/readers.c:728:42: warning: suggest braces around empty body in an 'else' statement [-Wempty-body] else debug("forget with nothing there!"); ^ ../deps/mpg123/src/libmpg123/readers.c: In function 'INT123_feed_more': ../deps/mpg123/src/libmpg123/readers.c:763:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body] if(VERBOSE3) debug("feed_more"); ^ ../deps/mpg123/src/libmpg123/readers.c:772:82: warning: suggest braces around empty body in an 'if' statement [-Wempty-body](unsigned long)fr->rdat.buffer.last->size, (unsigned long)fr->rdat.buffer.size); ^ ../deps/mpg123/src/libmpg123/readers.c: In function 'buffered_fullread': ../deps/mpg123/src/libmpg123/readers.c:848:97: warning: suggest braces around empty body in an 'if' statement [-Wempty-body] if(VERBOSE3) debug1("bufferedfullread: buffering %li bytes from stream (if > 0)", (long)got); ^ ../deps/mpg123/src/libmpg123/readers.c:856:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if(got < sizeof(readbuf)) /* That naturally catches got == 0, too. / ^ ../deps/mpg123/src/libmpg123/readers.c:867:73: warning: suggest braces around empty body in an 'if' statement [-Wempty-body] if(VERBOSE3) debug2("wanted %li, got %li", (long)count, (long)gotcount); ^ CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/tabinit.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/libmpg123.o ../deps/mpg123/src/libmpg123/libmpg123.c: In function 'mpg123_plain_strerror': ../deps/mpg123/src/libmpg123/libmpg123.c:1581:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if(errcode >= 0 && errcode < sizeof(mpg123error)/sizeof(char)) ^ CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/index.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/stringbuf.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/icy.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/icy2utf8.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/ntom.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/synth.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/synth_8bit.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/layer1.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/layer2.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/layer3.o ../deps/mpg123/src/libmpg123/layer3.c: In function 'III_dequantize_sample': ../deps/mpg123/src/libmpg123/layer3.c:695:12: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while(num < BITSHIFT) { \ ^ ../deps/mpg123/src/libmpg123/layer3.c:804:6: note: in expansion of macro 'REFRESH_MASK' REFRESH_MASK; ^ ../deps/mpg123/src/libmpg123/layer3.c:695:12: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while(num < BITSHIFT) { \ ^ ../deps/mpg123/src/libmpg123/layer3.c:818:6: note: in expansion of macro 'REFRESH_MASK' REFRESH_MASK; ^ ../deps/mpg123/src/libmpg123/layer3.c:695:12: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while(num < BITSHIFT) { \ ^ ../deps/mpg123/src/libmpg123/layer3.c:842:6: note: in expansion of macro 'REFRESH_MASK' REFRESH_MASK; ^ ../deps/mpg123/src/libmpg123/layer3.c:695:12: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while(num < BITSHIFT) { \ ^ ../deps/mpg123/src/libmpg123/layer3.c:890:4: note: in expansion of macro 'REFRESH_MASK' REFRESH_MASK; ^ ../deps/mpg123/src/libmpg123/layer3.c:695:12: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while(num < BITSHIFT) { \ ^ ../deps/mpg123/src/libmpg123/layer3.c:1021:6: note: in expansion of macro 'REFRESH_MASK' REFRESH_MASK; ^ ../deps/mpg123/src/libmpg123/layer3.c:695:12: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while(num < BITSHIFT) { \ ^ ../deps/mpg123/src/libmpg123/layer3.c:1036:6: note: in expansion of macro 'REFRESH_MASK' REFRESH_MASK; ^ ../deps/mpg123/src/libmpg123/layer3.c:695:12: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while(num < BITSHIFT) { \ ^ ../deps/mpg123/src/libmpg123/layer3.c:1059:6: note: in expansion of macro 'REFRESH_MASK' REFRESH_MASK; ^ ../deps/mpg123/src/libmpg123/layer3.c:695:12: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while(num < BITSHIFT) { \ ^ ../deps/mpg123/src/libmpg123/layer3.c:1088:4: note: in expansion of macro 'REFRESH_MASK' REFRESH_MASK; ^ CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/feature.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/dct64_x86_64.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/dct64_x86_64_float.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/synth_s32.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/synth_real.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/synth_stereo_x86_64.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/synth_stereo_x86_64_float.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/synth_stereo_x86_64_s32.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/synth_x86_64.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/synth_x86_64_s32.o CC(target) Release/obj.target/mpg123/deps/mpg123/src/libmpg123/synth_x86_64_float.o AR(target) Release/obj.target/deps/mpg123/libmpg123.a COPY Release/libmpg123.a CC(target) Release/obj.target/lamevectorroutines/deps/lame/libmp3lame/vector/xmm_quantize_sub.o ../deps/lame/libmp3lame/vector/xmm_quantize_sub.c: In function 'fht_SSE2': ../deps/lame/libmp3lame/vector/xmm_quantize_sub.c:172:20: warning: variable 'v_s2' set but not used [-Wunused-but-set-variable] __m128 v_s2; ^ AR(target) Release/obj.target/deps/lame/liblamevectorroutines.a COPY Release/liblamevectorroutines.a CXX(target) Release/obj.target/bindings/src/bindings.o CXX(target) Release/obj.target/bindings/src/node_lame.o CXX(target) Release/obj.target/bindings/src/node_mpg123.o SOLINK_MODULE(target) Release/obj.target/bindings.node SOLINK_MODULE(target) Release/obj.target/bindings.node: Finished COPY Release/bindings.node make: Leaving directory `/usr/local/lib/node_modules/douban.fm/node_modules/player/node_modules/lame/build' /usr/local/bin/douban.fm -> /usr/local/lib/node_modules/douban.fm/bin/start.sh /usr/local/bin/dev.douban.fm -> /usr/local/lib/node_modules/douban.fm/bin/dev.sh /usr/local/bin/core.douban.fm -> /usr/local/lib/node_modules/douban.fm/bin/cli /usr/local/bin/doubanfm -> /usr/local/lib/node_modules/douban.fm/bin/cli douban.fm@0.3.0 /usr/local/lib/node_modules/douban.fm ├── sprintf@0.1.3 ├── home@0.1.8 ├── fsplus@0.1.0 ├── open@0.0.5 ├── colorful@2.1.0 ├── mkdirp@0.3.5 ├── async@0.9.2 ├── consoler@0.2.0 (colors@0.6.2) ├── node-notifier@2.0.6 (which@1.0.9, shellwords@0.1.0, growler@0.0.1) ├── term-list-enhanced@0.1.0 (underscore@1.8.3, term-list-scrollable@0.1.3) ├── ffmetadata@1.0.2 (stream-filter@1.0.0, split@0.2.10, through@2.3.8, stream-combiner@0.0.2, concat-stream@1.0.1) ├── geci@0.0.2 (lrc@0.1.0, request@2.62.0) ├── douban-sdk@0.0.4 (sdk@0.1.1) ├── inquirer@0.5.1 (mute-stream@0.0.4, through@2.3.8, async@0.8.0, lodash@2.4.2, chalk@0.4.0, readline2@0.1.1, cli-color@0.3.3) └── player@0.3.2 (pool_stream@0.0.2, underscore@1.6.0, speaker@0.2.1, lame@1.1.1) ---> 69a81fd3a1dc Removing intermediate container 3b52e8fb0603 Step 9 : CMD douban.fm ---> Running in bc8f21bdd9fb ---> 0df5a57f2af3 Removing intermediate container bc8f21bdd9fb Successfully built 0df5a57f2af3

guo-yu commented 9 years ago

对的,这个镜像目前只是把环境装了,并不能真正启动,原因就是没法找到宿主机的声卡。这个问题目前好像还得不到解决~