ubuntu 在 R40e 上 還有 Debian 在 Sempron 2600 上

2015年2月25日 星期三

firefox 沒辦法變更首頁

不管在 option 怎麼設,開啟首頁一定是yahoo.
後來在 help icon -- 疑難排解資訊 -- user.js 偏好設定出現:
 您的設定檔資料夾中有一個 user.js 檔案,當中包含不是由 firefox 所建立的偏好設定
打開,是在 c:/Document and Settings/charles.chang/Applaction Data/Mozilla/Firefox/Profile/em2jesdsdsdsds/user.ja
有...

刪除掉這個user.js, 就可以重新設定 首頁了

2015年2月16日 星期一

為rt5625 codec 的 sysfs 增加一個 mic gain attr

mic gain 是 RT5625_MIC_CTRL,
使用的 write function 是:
snd_soc_write(codec,RT5625_MIC_CTRL,value);
read function 是:
int data = snd_soc_read(codec,RT5625_MIC_CTRL);
所以 sysfs 的 show 和 store:
最後,在 rt5625_probe( ) 裡,加上:
        ret = device_create_file(codec->dev, &dev_attr_mic_ctrl);

        if (ret < 0 ) {
                dev_err(codec->dev,
                        "Failed to create mic_ctrl sysfs files: %d\n", ret);
                return ret;
        }
就可以了,
然後在機器啟動後,在 /sys/bus/i2c/drivers/rt5625-codec/0-001e 下,就會出現:
mic_ctrl

cat mic_ctrl 就會顯示 reg22 的值。
echo 800 > mic_ctrl 就會把 800 寫入 reg22

2015年2月6日 星期五

udevadm -- print out sys udevent

udevadm 可以用來 print udevent 的內容。

ref: https://www.suse.com/zh-tw/documentation/sles11/book_sle_admin/data/sec_udev_debug.html

摘錄:

14.5 監控執行中的 udev 精靈

udevadm monitor 程式可用來視覺化驅動程式核心事件以及 udev 事件程序的時間。
UEVENT[1185238505.276660] add   /devices/pci0000:00/0000:00:1d.2/usb3/3-1 (usb)
UDEV  [1185238505.279198] add   /devices/pci0000:00/0000:00:1d.2/usb3/3-1 (usb)
UEVENT[1185238505.279527] add   /devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0 (usb)
UDEV  [1185238505.285573] add   /devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0 (usb)
UEVENT[1185238505.298878] add   /devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0/input/input10 (input)
UDEV  [1185238505.305026] add   /devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0/input/input10 (input)
UEVENT[1185238505.305442] add   /devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0/input/input10/mouse2 (input)
UEVENT[1185238505.306440] add   /devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0/input/input10/event4 (input)
UDEV  [1185238505.325384] add   /devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0/input/input10/event4 (input)
UDEV  [1185238505.342257] add   /devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0/input/input10/mouse2 (input)
UEVENT 行會顯示核心已透過網路連結傳送的事件。UDEV 行會顯示已完成的 udev 事件處理常式。列印時間是百萬分之一秒。介於 UEVENT 和 UDEV 之間的時間是指 udev 處理此事件所耗費的時間,或者是 udev 精靈延遲執行以便此事件能與執行中相關事件同步的時間。例如,硬碟分割區的事件始終會等待主要磁碟設備事件完成,因為分割區事件可能與主要磁碟事件向硬體查詢的資料有關。

udevadm monitor --env 會顯示完整的事件環境:
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0/input/input10
SUBSYSTEM=input
SEQNUM=1181
NAME="Logitech USB-PS/2 Optical Mouse"
PHYS="usb-0000:00:1d.2-1/input0"
UNIQ=""
EV=7
KEY=70000 0 0 0 0
REL=103
MODALIAS=input:b0003v046DpC03Ee0110-e0,1,2,k110,111,112,r0,1,8,amlsfw
udev 也會將訊息傳送到 syslog。控制哪些訊息要傳送到 syslog 的預設 syslog 優先程度是在 udev 的組態檔 /etc/udev/udev.conf 中指定。執行精靈的記錄優先程度可使用 udevadm control log_priority=level/number 來變更。

mount --bind

ref: http://www.cnitblog.com/gouzhuang/archive/2010/04/21/mount_bind.html

很有趣。
類似於 ln -s

mount --bind 可以用來取代任何以存在的file, folder.

以 ref 的 link 來看。
可以用
# mout --bind /tmp/init.rc /init.rc
用 /tmp/init.rc 取代 /init.rc

也可以用 mount --bind 取代掉整個目錄。

Editor

試試 Kate 跟 Bluegfish.
Kate 用 Qt, 所以會裝一堆 Qt library.

2015年2月5日 星期四

64g 和 wifi ap

64G 的是 exfat 格式。

Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p
Disk /dev/sdd: 59.8 GiB, 64222134272 bytes, 125433856 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device     Boot Start       End   Sectors  Size Id Type
/dev/sdd1       32768 125433855 125401088 59.8G  7 HPFS/NTFS/exFAT

一片64g用在 altis 的 dvr 上了 (原8G已經放起來)

2015年2月3日 星期二

android notes, Audio, Alsa, buffer size & latency

在 framework/base/media/libmedia/AudioTrack.cpp (getMinFrameCount) :
    // Ensure that buffer depth covers at least audio hardware latency
    uint32_t minBufCount = afLatency / ((1000 * afFrameCount) / afSampleRate);
    if (minBufCount < 2) minBufCount = 2;

    *frameCount = (sampleRate == 0) ? afFrameCount * minBufCount :
              afFrameCount * minBufCount * sampleRate / afSampleRate;
    return NO_ERROR;

Latency 是問hardware.,,經由OutputDescriptor 傳回 (include/media/AudioSystem.h)
    class OutputDescriptor {
    public:
        OutputDescriptor()
        : samplingRate(0), format(0), channels(0), frameCount(0), latency(0)  {}

        uint32_t samplingRate;
        int32_t format;
        int32_t channels;
        size_t frameCount;
        uint32_t latency;
    };
或是 IAudioFlinger.

這個latency 直,是由 alsa 的 bufferSize 算出來的。
在 hardware/alsa_sound/alsa_default.cpp..
static alsa_handle_t _defaultsOut = {
    module      : 0,
    devices     : AudioSystem::DEVICE_OUT_ALL,
    curDev      : 0,
    curMode     : 0,
    handle      : 0,
    format      : SND_PCM_FORMAT_S16_LE, // AudioSystem::PCM_16_BIT
    channels    : 2,
    sampleRate  : DEFAULT_SAMPLE_RATE,
    latency     : 40000, // Desired Delay in usec
    bufferSize  : 8192, // Desired Number of samples
    mmap        : 0,
    modPrivate  : 0,
};
這裡的bufferSize, 變更的話, latency 值就會改變。

標籤

網誌存檔