五千年(敝帚自珍)

主题:【原创】我的Gentoo经历 -- 瓦斯

共:💬30 🌺69
全看分页树展 · 主题 跟帖
家园 【原创】让gentoo能认多功能读卡器

我购买了一款多功能读卡器,可以读写常见的几种内存卡,形状大致像这个样子:

点看全图

一般是6 in 1或8 in 1的,实际上我们平时可能主要用的是最流行的SD卡,现在相机和PDA手机中也多采用这种SD卡。有一个读卡器可以方便地搬运文件。

多功能读卡器在微软视窗中可以直接使用,在Ubuntu中也差不多,即插即用。在微软视窗中它通常表现为4个移动硬盘的盘符,SD卡和MMC卡同用一个插槽,通常插在第三个槽中,因此就显示为第三个盘。其他而没有插上内存卡的盘就像一个没有放入光盘的光驱或没有插入软盘的软驱一样,如果点击那个驱动器就会显示没有找到盘。

Gentoo的问题就出在它默认只把这一个usb设备当作一个驱动器,也就是只显示出有一个盘,就是第一个叫做Copact falsh card的槽,而其余的槽都看不见了。即使你想自己mount它们,在/dev下面只有一个/dev/sda可以供你mount,而里面恰好没有卡。按照预想,多功能读卡器插上 usb之后,在/dev下面应该有至少4个scsi设备,即sda、sdb、sdc和sdd,可是我的gentoo就偏偏只有一个/dev/sda。

这个问题困扰了我很久,它是Gentoo独有的问题,在Ubuntu中不存在这样的问题。搜索了国内外众多gentoo网站,也看到不少人提出这个问题,也有人提出很多解决方案,可是对我的多功能读卡器一直无效。

直到最近偶然在一个国外网站看到一个介绍,试了一下,一举成功。这个解决方法其实很简单,可是我在国内外中文网站都没有找到过,所以特别用中文写出来,也许其他只看中文的网友会有点帮助。

在Gentoo的内核中,默认没有选择支持probe all LUNs on each SCSI devices这一项,要把这个项目编译到内核中去:

cd /usr/src/linux

make menuconfig

make && make modules_install

或者

cd /usr/src/linux

genkernel --menuconfig all

都会呼叫menuconfig这个程序让用户自己选定内核支持哪些设备。我们除了一般usb设备必须的之外,还要选定这些内容:

SCSI Support

<*> SCSI disk support

<*> SCSI generic support

<*> probe all LUNs on each SCSI devices

选完了这些选项之后推出存盘,make menuconfig或genkernel --menuconfig all都会继续编译内核和模块。后者会把编译好的内核直接复制到/boot中去下次启动就直接可用了,用前者编译出来的模块保存在默认的特定的目录中,需要根据说明书自己复制到/boot去才能使用。

用新的内核启动之后,/dev下面就会出现sda、sdb、sdc和sdd四个设备了,我们就可以用

mkdir /mnt/usb (可选)

mount /dev/sdc /mnt/usb

来挂载第三个插槽中的sd卡了。

关键词(Tags): #读卡器#SD

本帖一共被 1 帖 引用 (帖内工具实现)
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河