Tag Archives: kernel

Linux Kernel 4.7 PPTP pass through issue

升級到 Linux kernel 4.7 之後, 突然 PPTP pass through 有問題.
有人提供了解決方案

在 /etc/sysctl.conf 加上

net.netfilter.nf_conntrack_helper=1

這樣就可以了, 不知道為什麼預設值改了.
ref.
Bug 152101 – Updating from 4.6.4 to 4.7 breaks “pptp pass through"

Kubuntu 15.04 + Broadwell / Intel i7-5775C 的問題

之前升級了 Broadwell 架構的 i7-5775C 之後, 裝了 Windows 7 並且也升級到 Windows 10 . (見 電腦升級 i7 5775c + ASUS Z97-A/USB3.1 ) 似乎沒有太大的問題.
問題在於, 我就是手賤, 喜歡裝 Linux 來用. 這下慘了, 折磨了我一個月才搞定這個問題.
Read more »

[Gentoo] 裝 Brother HL-2240D Driver + Samba 分享

Linux 支援 Brother HD-2240D driver 可以用 Samba + CUPS 提供服務.

Read more »

udev 之後仍然想用原先的 network device rename 的方式修改 interface

Predictable Network Interface 這件事情出現之前, 很長一段時間, udev 起來之後, script 會自動產生 70-persistent-net.rules , 然後所有的 ethernet device 就會在裡面, 如果要改個順序ex: eth0->eth1 or eth1->net1, 就在裡面改就好了.

不過總之他們就是改了, 說什麼安全的問題啦, firewall 設定啦.

只是改了之後, 大家討論了很久, 也 try 了很久.
我也是這次因為一定要能動, 所以認真的研究了一下, 目前最安定的設定, 可以正確更改名稱的設定.
1. 在 kernel command line 加上 net.ifnames=0, 這樣就會變原來的 eth0… blah blah , 可是原先的更改名稱方式還是不能用.

Gentoo 使用者可以改 Kernel Config, 關掉這個選掉

Gentoo Linux  —>
[ ]   Linux dynamic and persistent device naming (userspace devfs) support

2. 請參照 Gentoo 文件 2.d. Network Interface Naming

# udevadm test-builtin net_id /sys/class/net/eth0 2>/dev/null
ID_NET_NAME_MAC=enxc80aa9429d76
ID_OUI_FROM_DATABASE=Quanta Computer Inc.

# vim /etc/udev/rules.d/70-net-name-use-custom.rules
# First one uses MAC information, and 70- number to be before other net rules
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="c8:0a:a9:42:9d:76", NAME="lan0"

# vim /etc/udev/rules.d/76-net-name-use-custom.rules
# Second one uses ID_NET_NAME_PATH information, and 76- number to be between
# 75-net-*.rules and 80-net-*.rules
SUBSYSTEM=="net", ACTION=="add", ENV{ID_NET_NAME_PATH}=="enp3s0", NAME="wifi0"

這樣就可以成功了.

Upgrading udev from 171 (or older) to 197

上次升到 udev + kernel 3.7.1, device 那邊怪怪的, 記錄一下, 以後碰到了可以查

Read more »

OOM – Out of Memory.

OOM – Out of Memory.
筆記文章
Read more »

Debugfs

以前都習慣用 printk 和 /proc 做輸入輸出的動作, 不過 debugfs 看起來是 User space 和 kernel space 交流更好的選擇.
Read more »

Linux kernel PCI Domains Support for ARM

Linux kernel 支援不同 domain 的 PCI, 看起來是 ACPI 的功能之一.
其他平台看起來也有支援, 像是 sparc or mips 都有.

但是在 ARM 上並沒有這樣的支援

我的平台有 2 個 PCIe Host Controller , 而且都要設定在 PCIe bus 0 上面.
這時就拿 PCI domain 的 code 來用最快,
以下就是 Sample Code 和 ARM 部份的 Patch Code (不含我目前使用平台的 Patch)

Read more »

ARM 的 Oprofile

最近在弄 ARM11 的 Oprofile, 結果發現執行 opcontrol 的動作之後, 沒有 log 的動作.
大致上的訊息是這樣的

# opcontrol --shutdown
Stopping profiling.
Killing daemon.
# Stopping profiling.
Killing daemon.
opreport image:/vmlinux -l -w -g > oprofile.txt
error: no sample files found: profile specification too strict ?

這時請改用 timer interrupt

在 load oprofile modules 加上 timer=1
若是 static link 時, 就要在 boot_cmd 加上 oprofile.timer=1

似乎目前的 kernel oprofile 不支援 ARM11MPCore.

http://oprofile.sourceforge.net/doc/detailed-parameters.html#timer

Andriod 筆記(Run Application, build Image)

最近不小心手滑買了一隻 Android Dev Phone 1 長得和 T-Mobile G1 的外型是一樣的.
雖然還沒有到貨, 但是準備工作要先作好.
Read more »