顯示具有 module 標籤的文章。 顯示所有文章
顯示具有 module 標籤的文章。 顯示所有文章

2010年1月7日 星期四

Device Number Swap During Each Reboot on Arch Linux

to specify loading order of modules in /etc/rc.conf is not working

solution: write custom udev rules

1. get a list of all the attributes of a device

udevadm info -a -p $(udevadm info -q path -n /dev/video0)

first block of the result

looking at device '/devices/pci0000:00/0000:00:1d.3/usb5/5-2/5-2:1.0/video4linux/video0':
KERNEL=="video0"
SUBSYSTEM=="video4linux"
DRIVER==""
ATTR{name}=="Logitech QuickCam Zoom"
ATTR{index}=="0"
ATTR{button}=="0"

2. create rules in /etc/udev/rules.d

vi /etc/udev/rules.d/10-local.rules
--

KERNEL=="video*" ATTR{name}=="Logitech QuickCam Zoom", SYMLINK+="webcam"
KERNEL=="video*" ATTR{name}=="saa7133*", SYMLINK+="tvcard"

10 is the number in sequence
* is wildcard character

3. the symbolic links, /dev/webcam and /dev/tvcard will be created and linked to the corrrect devices when loaded udev rules so you can use soft links instead

2009年8月12日 星期三

Change the Default Sound Card on Arch Linux

i found the sound module of my tv card was the default sound device because i tried to run amixer and got no master or pcm controls.

1. discover your sound card model name with lspci and your ALSA driver module names with ls

$ ls -l /sys/module/snd/holders
total 0
lrwxrwxrwx 1 root root 0 2009-08-13 09:21 saa7134_alsa -> ../../saa7134_alsa
lrwxrwxrwx 1 root root 0 2009-08-13 09:21 snd_hda_codec -> ../../snd_hda_codec
lrwxrwxrwx 1 root root 0 2009-08-13 09:21 snd_hda_codec_realtek -> ../../snd_hda_codec_realtek
lrwxrwxrwx 1 root root 0 2009-08-13 09:21 snd_hda_intel -> ../../snd_hda_intel
lrwxrwxrwx 1 root root 0 2009-08-13 09:21 snd_hwdep -> ../../snd_hwdep
lrwxrwxrwx 1 root root 0 2009-08-13 09:21 snd_mixer_oss -> ../../snd_mixer_oss
lrwxrwxrwx 1 root root 0 2009-08-13 09:21 snd_pcm -> ../../snd_pcm
lrwxrwxrwx 1 root root 0 2009-08-13 09:21 snd_pcm_oss -> ../../snd_pcm_oss
lrwxrwxrwx 1 root root 0 2009-08-13 09:21 snd_rawmidi -> ../../snd_rawmidi
lrwxrwxrwx 1 root root 0 2009-08-13 09:21 snd_seq -> ../../snd_seq
lrwxrwxrwx 1 root root 0 2009-08-13 09:21 snd_seq_device -> ../../snd_seq_device
lrwxrwxrwx 1 root root 0 2009-08-13 09:21 snd_seq_oss -> ../../snd_seq_oss
lrwxrwxrwx 1 root root 0 2009-08-13 09:21 snd_timer -> ../../snd_timer
lrwxrwxrwx 1 root root 0 2009-08-13 09:21 snd_usb_audio -> ../../snd_usb_audio

2. add order setting for the module of main soundcard to modprobe.conf

vi /etc/modprobe.d/modprobe.conf
--

options snd_hda_intel index=0

3. make your user be able to use the sound card

gpasswd -a username audio

3. reboot then make sure the sound modules have been loaded

lsmod | grep ^snd_

4. the current version of alsa installs with all channels muted by default. use alsamixer to unmute the channels and adjust volume manually

5. run alsactl once to create /etc/asound.state

alsactl store
# restore
# alsactl restore

6. add alsa to daemons in rc.conf to store the mixer settings on every shutdown and restore them when you boot.

2009年6月9日 星期二

Wireless USB Network Card WIFI-Link WL-USB-RSMA-27 on Arch Linux

when you plug the card into the usb slot, arch linux will modprobe rtl8187 module automatically. the driver is mac80211 based. then you can see interface wlan0 registered. it is pity it doesn't work with WIFI-Link WL-USB-RSMA-27 though aircrack-ng indicates 2.6.27 and newer kernel contain a fully-functional driver for rtl8187b and rtl8187l. so we got to compile the module by ourselves

some errors cause the newest driver rtl8187_linux_26.1025.0328.2007 cannot be compiled on arch linux and modern distributions. fortunately aircrack-ng has a patch for compiling the old driver rtl8187_linux_26.1010.0622.2006

1. unload rtl8187 module

rmmod rtl8187

wlan0 should be disappeared

2. download the old one

wget http://dl.aircrack-ng.org/drivers/rtl8187_linux_26.1010.zip

3. unzip

7z x rtl8187_linux_26.1010.zip

4. change to the extracted directory

cd rtl8187_linux_26.1010.0622.2006

5. download the patch

wget http://patches.aircrack-ng.org/rtl8187_2.6.27.patch

6. extract some components

tar xzf drv.tar.gz
tar xzf stack.tar.g

7. apply patch to source code

patch -Np1 -i rtl8187_2.6.27.patch

8. one more step to pass through compiling

vi beta-8187/r8187.h
--
change
#include <asm/semaphore.h>
to
#include <linux/semaphore.h>

9. compile and install

make && make install

i know the interface name would be wlan0 after new installed module r8187 loaded. so i write wlan0 directly in the following steps

10. if you need to load settings while booting, wlan_<interface>= in rc.conf isn't working. so i pick rc.local for use

vi /etc/rc.local
--

iwconfig wlan0 essid <ESSID> mode Ad-Hoc key 1234567890
ifconfig wlan0 up <IP> netmask <MASK>

remember to install wireless_tools package before iwconfig. and if you need sharing ppp connection with wlan interface, set mode to Ad-Hoc. although iwconfig supports Master, Repeater mode. only Ad-Hoc and Managed modes work on WL-USB-RSMA-27

11. block old rtl8187 and load new r8187 module when booting

vi /etc/rc.conf
--

..
MODULES=(r8187 !rtl8187)
..

12. reboot then done

2009年6月3日 星期三

WiFi / Wireless USB Network Card Edimax EW-7318UG on Arch Linux

1. identify the card

check /var/log/message when you plug your card into usb slot
you'll see

kernel: wmaster0 (rt73usb): not using net_device_ops yet
kernel: wlan0 (rt73usb): not using net_device_ops yet
kernel: Registered led device: rt73usb-phy0:radio
kernel: Registered led device: rt73usb-phy0:assoc
kernel: Registered led device: rt73usb-phy0:quality
kernel: usbcore: registered new interface driver rt73usb
kernel: usbcore: registered new interface driver rt2500usb

or lsusb command
or check your card if is linux supported
https://help.ubuntu.com/community/WifiDocs/WirelessCardsSupported

2. you can see the interface from iwconfig command

3. bring the interface up

ifconfig wlan0 up
--

SIOCSIFFLAGS: No such file or directory

that means you need a firmware file. below is the error log appearing in /var/log/message at the same time

kernel: rt73usb 1-4:1.0: firmware: requesting rt73.bin
firmware.sh[19027]: Cannot find firmware file 'rt73

4. install the corresponding firmware packages

pacman -S rt2x00-rt71w-fw ( or rt2x00-rt61-fw )

5. in order to install package from http://repo.arch-linux.pl/, add the following setting to /etc/pacman.conf

[archlinux.pl]
Server = ftp://repo.arch-linux.pl/i686

6. install the package, RaLink RT73 USB Enhanced Drivers

pacman -Sy rt73-k2wrlz
--

Drivers installed, but not loaded. To enable it: 'rmmod rt73usb && modprobe rt73

7. to avoid conflict between modules, block the modules which would be loaded automatically
these module was observed from lsmod command

vi /etc/modprobe.d/blacklist
--

blacklist rt2500usb
blacklist rt73usb
blacklist rt2x00usb
blacklist rt2x00lib

8. add rt73 to MODULES in /etc/rc.conf then reboot

9. iwconfig

rausb0 RT73 WLAN ESSID:""
Mode:Ad-Hoc Frequency=2.412 GHz Cell: XX:XX:XX:XX:XX:XX
Bit Rate=11 Mb/s
RTS thr:off Fragment thr:off
Link Quality=65/100 Signal level:-54 dBm Noise level:-143 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

10. ifconfig rausb0 up

11. scan for available access points for testing

iwlist rausb0 scan

12. usage of iwconfig

iwconfig rausb0 essid "SSID" key 1234567890

if your wep key is ascii, prefix with s:

iwconfig rausb0 essid "SSID" key s:asciikey

13. automatical setup while booting

vi /etc/rc.conf
--

..
wlan_rausb0="rausb0 essid SSID mode Ad-Hoc key 1234567890"
rausb0="rausb0 XXX.XXX.XXX.XXX netmask XXX.XXX.XXX.XXX"
INTERFACES=(eth0 rausb0)
..

2009年3月11日 星期三

Map Remote Servers into the Space of the Local Apache Server with Authentication on Ubuntu

1. delete symbolic link of the default proxy.conf

sudo rm /etc/apache2/mods-enabled/proxy.conf

2. make another copy of proxy.conf in the same folder, mods-enabled

sudo cp /etc/apache2/mods-available/proxy.conf /etc/apache2/mods-enabled/proxy.conf

3. edit it

sudo vi /etc/apache2/mods-enabled/proxy.conf
--

ProxyVia On

ProxyPass /mirror/ http://address:port/
ProxyPassReverse /mirror/ http://address:port/

<Location /motion/>
AuthName "TITLE"
AuthType Basic
AuthUserFile /var/www/.htpasswd
require valid-user
</Location>

# ProxyPass causes a local request for the http://localhost/mirror/ to be internally converted into a proxy request to http://address:port/
# ProxyPassReverse provides location header on http adjusting which redirects http://localhost/mirror/sub/ to http://address:port/sub/ also

4. generate apache password file, /var/www/.htpasswd

sudo htpasswd -c /var/www/.htpasswd username

2008年12月13日 星期六

VirtualBox Open Source Edition on Ubuntu

1. install open source edition of virtualbox and its module

sudo apt-get install virtualbox-ose virtualbox-ose-modules-generic

2. from console output or /var/log/apt/term.log, you can see there is no matching virtualbox-ose module for kernel 2.6.24-22. virtualbox-ose-modules-generic is linked to kernel 2.6.24-21 so apt-get installs linux-image-2.6.24-21-generic automatically.

in short, we have to change default boot number of grub to kernel 2.6.24-21

sudo vi /boot/grub/menu.lst
--
default n

3. scim conflicts with virtualbox-ose. it results keyboard is locked in both host and guest os when you press key or mouse which is captuered in guest os. below is the solution

sudo apt-get install scim-bridge-client-qt
im-switch -z en_US -s scim-bridge

4. reboot then done

5. before sharing folders between host and guest, you must install Guest Additions. once installed it, go to Devices -> Shared Folders.. to set your sharing folders. if guest os is windows, run

net use x: \\vboxsvr\FolderName