Author Archives: Seungsoo

Disable IPv6 (Ubuntu 16.04.5)

Step 1. Check disable_ipv6 file ( 0 means working)

$ sudo cat /proc/sys/net/ipv6/conf/all/disable_ipv6  
0

Step 2. Edit that file and reload it

$ sudo vi /etc/sysctl.conf  

net.ipv6.conf.all.disable_ipv6 = 1  
net.ipv6.conf.default.disable_ipv6 = 1  
net.ipv6.conf.lo.disable_ipv6 = 1  

$ sudo sysctl -p

[DIY] 뉴코란도 키노브 장착

일시: 2019년 3월
장소: ??
준비물: 스마티아 키노브 [구매],  4P 릴레이 및 배선 [구매]

작업 전 모습

준비물을 열거 해본다.

우선 기존키를 키노브에 장착해야하기때문에 토치로 키 고무 부분을 살살 구워준다.

어느정도 익었으면, 뺀찌로 슬금슬금.

이렇게 키를 빼낸다.

양쪽으로 붙잡고 어느정도 절단을 해야한다.

깔끔하게 하기위해 사포질도 삭삭-.

운전선 하단 트림을 탈착.

릴레이 배선작을 한다. 이렇게 해줘야 키를 꼽고있어도, 리모컨작동이 정상적으로 된다.

배선을 잘 연결해서,

완료..키노브 장착 후 모습이다. 이제 매번 키를 꼽으려고 이리찌르고 저리 찌르지 않아도 된다.

끗.

 

[정비] 뉴코란도 미션오일쿨러 장착

일시: 2019년 4월
장소: 대전 Road9 (로드나인)
부품: 포터 쿨러

입고 후 리프에 올린다.

보통 여러가지 쿨러를 장착하는데 포터용 쿨러로 결정하고 위치를 가운데 잡았다.

하단에는 브라켓을 만들어서 잘 고정시키고 유압호스를 체결한다.

브라켓은 자체에 피스를 박아서 고정..

호스를 하단으로 빼서 케이블 타이로 움직이지 않도록 고정시킨다.

유압호스를 미션쪽으로 끌고 간다.

저 금색.. 유압호스끝에 연결해서 원터치 클램프로 새지않도록 조여준다.

주행중에 흔들리지 않도록 여러가지로 고정한다.

근데 저거.. 스펀지 물에 닿으면 괜찮을지 모르겠다.

 

우선 작업은 깔끔하게 끝이났는데. 하고나니 장착위치로 인해 주행풍을 어느정도 막아버리는것이 문제가 될것같기도하다. 비트라 미션의 경우 엄청난 열과의 싸움이라.. 미션오일온도를 잡기위해 설치했는데 반대로 엔진오일 온도가.. 높아져버리는것이 아닌가 모르겠다. 끝.

Modify network interface name to ethX (Ubuntu 16.04.5)

Step 1. Check dmesg

$ dmesg | grep -i eth
[    2.993750] igb 0000:06:00.0 enp6s0: renamed from eth1
[    3.080609] igb 0000:05:00.0 enp5s0: renamed from eth0
[    3.140633] igb 0000:3b:00.0 enp59s0f0: renamed from eth2
[    3.236701] igb 0000:3b:00.1 enp59s0f1: renamed from eth3

Step 2. Edit GRUB (GRand Unified Bootloader)

$ sudo vi /etc/default/grub

GRUB_CMDLINE_LINUX=""

to 

GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

$ sudo grub-mkconfig -o /boot/grub/grub.cfg

Step 3. Modify /etc/network/interfaces and reboot

$ sudo vi /etc/network/interfaces
$ sudo reboot

 

 

Open VSwitch (OVS) 2.5.6 LTS Install (Ubuntu 16.04.5)

Step 1. Download and install OVS 2.5.6

$ sudo apt-get install wget autoconf libtool -y
$ wget https://www.openvswitch.org/releases/openvswitch-2.5.6.tar.gz
$ tar zxvf openvswitch-2.5.6.tar.gz
$ cd openvswitch-2.5.6
$ ./boot.sh
$ ./configure
$ make && make install
$ sudo modprobe openvswitch
$ sudo lsmod | grep openvswitch
$ export PATH=$PATH:/usr/local/share/openvswitch/scripts
$ ovs-ctl start

Step 2. Make bridge and add port(s)

# remove and add ovsbr0
$ sudo ovs-vsctl del-br ovsbr0 2> /dev/null
$ sudo ovs-vsctl add-br ovsbr0

# configure ovsbr0
$ sudo ovs-vsctl set-controller ovsbr0 tcp:127.0.0.1:6633
$ sudo ovs-vsctl -- set bridge ovsbr0 protocols=OpenFlow10
$ sudo ovs-vsctl set-fail-mode ovsbr0 secure

# add interfaces to ovsbr0
$ sudo ovs-vsctl add-port ovsbr0 [interface name]
$ sudo ovs-vsctl add-port ovsbr0 [interface name]
$ sudo ovs-ofctl show ovsbr0

Step 3. Install flow rules

$ sudo ovs-ofctl add-flow ovsbr0 in_port=1,actions=output:2
$ sudo ovs-ofctl add-flow ovsbr0 in_port=2,actions=output:1
$ sudo ovs-ofctl dump-flows ovsbr0

 

Run DPDK (Ubuntu 16.04.5)

Step 1. Install DPDK

Step 2. Add DPDK Driver: We need to add DPDK driver to ubuntu kernel

$sudo modprobe uio
$sudo insmod /usr/src/dpdk-stable-17.11.3/x86_64-native-linuxapp-gcc/kmod/igb_uio.ko

Step 3. Bind DPDK driver

$ cd /usr/src/dpdk-stable-17.11.3/usertools
$./dpdk-devbind.py --status

Network devices using kernel driver
===================================
0000:00:19.0 'Ethernet Connection I217-LM 153a' if=eth1 drv=e1000e unused=
0000:03:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' if=eth2 drv=ixgbe unused=
0000:03:00.1 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' if=eth3 drv=ixgbe unused=
0000:05:00.0 'I210 Gigabit Network Connection 1533' if=eth0 drv=igb unused= *Active*

$./dpdk-devbind.py --bind=igb_uio 03:00.1

Step 4. Run example

$ cd /usr/src/dpdk-stable-17.11.3/examples/helloworld
$ make

$ cd build/app
$ ./helloworld -l 1-2 -n 4 (-l is core to be used, -n is # mem)

Etc. You can configure that some cores cannot be used by the linux kernel as follows.

GRUB_CMDLINE_LINUX_DEFAULT="... isolcpus=2,3,4"

 

Run Pktgen (Ubuntu 16.04.5)

Step 1. Install and configure DPDK

Step 2. Install Pktgen

$ sudo apt-get install -y wget patch libpcap-dev
$ curl -LO http://www.dpdk.org/browse/apps/pktgen-dpdk/snapshot/pktgen-3.5.0.tar.gz
$ tar xvfz pktgen-3.5.0.tar.gz

$ echo "export RTE_SDK=\$DPDK_DIR" >> ~/.bashrc
$ echo "export RTE_TARGET=\$DPDK_TARGET" >> ~/.bashrc
$ . ~/.bashrc

$ cd pktgen-3.5.0
$ make

Step 3. Run Pktgen

$ cd pktgen-3.5.0

$ sudo -E app/$RTE_TARGET/pktgen -c 0xf -n 4 -- -p 0x3 -P -m "[1:2].0"
=> [1:2].0 : use core #1 and #2 for port 0

Pktgen:/> set [port number] [parameter] [value]
set 0 count 100
=> send 100 packets to port 0
set 0 size 64
=> send 64-byte packets to port 0
set 0 rate 50
=> send packets to port 0 with 50% sending rate
set 0 src ip 10.0.0.0/24
=> configure a source IP address
set 0 src mac aa:bb:cc:dd:ee:ff
=> configure a source MAC address
start 0
=> start to send packets
stop 0
=> stop sending packets

(with script)

$ sudo -E app/$RTE_TARGET/pktgen -l 0-4 -n 3 -- -P -m "[1:3].0" -f scripts/rfc2544_tput_test.lua

 

[DIY] 뉴코란도 곰발 미러 + 열선

일시: 2018년 4월
장소: 백국장님 방
준비물: 곰발미러 1세트, 현대 리베로 사이드미러 열선부품 1세트

곰발미러 작업전 모습 한 컷.
준비한 곰발미러에 열선을 삽입하기위해 우선 거울을 탈거한다.
이렇게. 여기서 잘못하면 거울이.. 깨진다. 살살.. 떼야된다.
뒷면을 보면 거울과 잡아주는 프라스틱 부분이 있는데, 드라이기로 가열 하여 이걸 다시 분리해야한다.
이렇게 분리가 되면,
현대 리베로 열선 거울에서 열선만 드라이기로 살살 가열해서 분리한다.
순정 미러열선의 배선을 가져와서 선을 잘 맞춰서 리베로 열선과 곰발미러에 연결!
조립은 분해의 역순으로 뚝딱뚝딱
곰발미러 장착 후 모습. 하지만 예상과 달리 곰발미러는 콧털범퍼와 어울리지 않아서 그릴과 범퍼를 교체한다.

[DIY] 뉴코란도 리어 와이퍼/4륜 스위치 LED 작업

일시: 2019년 4월
장소: 갈마동 공영주차장
준비물: 저항 포함한 LED 등 2개

운전석 하단 트림 탈거 한 뒤, 스위치 연결선을 해제한다.

4륜/와이퍼 스위치 빼서 전구를 뽑기위해 분해.

기존 흐리멍텅한 전구를 제거 하면 이렇게 생겼다.
자세히보면, 전구 뿐 아니라, 얇은 필름지가 있는데 이것또한 제거.

그리고 준비한 LED 전구를 그 자리에 삽입.

사진을 얼마 못 찍었다. :(

Install DPDK 18.11.1 LTS (Ubuntu 16.04.5 LTS)

Step 1. Check DPDK Support (http://dpdk.org/doc/nics)

$ sudo ethtool -i [NIC]

Step 2. Configure CPU and memory

$ sudo vi /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="default_hugepagesz=1G hugepagesz=1G hugepages=4" (1GB huge page setup)
GRUB_CMDLINE_LINUX_DEFAULT="default_hugepagesz=2M hugepagesz=2M hugepages=2048" (2MB huge page setup)

$ sudo update-grub

$ echo 'vm.nr_hugepages=4' >> /etc/sysctl.conf (1GB huge page setup)
$ echo 'vm.nr_hugepages=2048' >> /etc/sysctl.conf (2MB huge page setup)

$ mkdir /mnt/huge
$ mount -t hugetlbfs nodev /mnt/huge
$ sudo vi /etc/fstab (!TAB interval!)
nodev    /mnt/huge    hugetlbfs    defaults    0    0
$ sudo reboot

$ grep -i huge /proc/meminfo (1GB huge page)
AnonHugePages:         0 kB
ShmemHugePages:        0 kB
HugePages_Total:       4
HugePages_Free:        4
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:    1048576 kB

Step 3. Install DPDK

$ echo "export DPDK_DIR=/usr/src/dpdk-stable-18.11.1" >> ~/.bashrc
$ echo "export DPDK_TARGET=x86_64-native-linuxapp-gcc" >> ~/.bashrc
$ echo "export DPDK_BUILD=\$DPDK_DIR/\$DPDK_TARGET" >> ~/.bashrc
$ . ~/.bashrc

$ sudo apt-get install -y make coreutils gcc-multilib python libnuma-dev curl
$ curl -LO http://fast.dpdk.org/rel/dpdk-18.11.1.tar.xz
$ sudo tar xvfJ dpdk-18.11.1.tar.xz -C /usr/src/

$ cd $DPDK_DIR
$ sudo make install T=$DPDK_TARGET DESTDIR=install
or
$ cd $DPDK_DIR/usertools
$ sudo ./dpdk-setup.sh

$ sudo reboot