less /proc/cpuinfoRef
lscpu
hardinfo | less
sudo lshw -class processor
Tuesday, April 23, 2019
8 commands to check cpu information on Linux
Friday, April 19, 2019
Check os version in Linux command line
คำสั่งลองดู
lsb_release -a
hostnamectl
cat /etc/os-release
uname -r
cat /etc/os-release // แนะนำตัวนี้
NAME="Ubuntu"Ref:
VERSION="17.10 (Artful Aardvark)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 17.10"
VERSION_ID="17.10"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=artful
UBUNTU_CODENAME=artful
Add user to group Ubuntu 18.04
Ref
ตัวอย่าง
ตัวอย่าง
- เราจะเพิ่ม alice เข้ากลุ่ม docker เพื่อตอนเรียกคำสั่งเกี่ยวกับ docker จะได้ไม่ต้องใช้ sudo
sudo usermod -aG docker alice
Thursday, April 18, 2019
How to enable service ssh on Ubuntu 18.04
- ประเด็นคือ ยำ Ubuntu Mate ARM for Rasberry Pi 3 Model B+ ซะเน่าเลย ssh ไม่ทำงาน
- พอทำงานได้ก็ไม่ auto run service ทำไงล่ะ
sudo systemctl stop ssh
sudo systemctl start ssh
sudo systemctl status ssh
sudo systemctl disable ssh
sudo systemctl enable ssh // ตัวนี้แหละเปิดให้มันทำงานตอนบูตระบบด้วยRef
Wednesday, April 17, 2019
Connection reset when trying to ssh remote
อาการ
- ssh remote ไปเครื่องปลายทางไม่ได้ ping เจอ
ssh user@ip-ssh-server
Connection reset by ip-ssh-server port 22Solved
sudo rm /etc/ssh/ssh_host_* && sudo dpkg-reconfigure openssh-serverEnv
- Ubuntu Mate 18.04 ARM for Rasberry Pi 3 Model B+
Auto launch java on Ubuntu Mate for Rasberry Pi 3 Model B+
- เราไมต้องพึ่ง ~/.bashrc หรือ /etc/rc.local
- บน Ubuntu - Mate 18.04 เค้ามี Startup Applications เราจะไปใช้ script ให้มันยุ่งยากทำไมกัน
- มันจะซ่อนอยู่เมนูใน Preferences
- อยากให้โปรแกรมที่เขียนด้วย Java (.jar) แบบ console รันขึ้นมาตอน บูตเข้าระบบ (ตั้งค่า Auto login ไว้แล้ว)
- และให้เปิดหน้าต่าง terminal ค้างไว้ด้วยจะได้เห็นการทำงานของโปรแกรมเรา
- สร้างไฟล์ .sh ในนั้นก็ประกอบด้วยคำสั่งประมาณนี้ ตัวอย่างนี้สร้างไฟล์ชื่อ run_mybash.sh
rm -rf /var/lock/LCK..ttyUSB0
java -jar /home/user/smarthw.jar
- จากนั้นเพิ่ม โดยกดปุ่ม Add มันจะขึ้นหน้าต่างให้กรอกข้อมูล App เรา ประมาณนี้
Name: AppName
Command: mate-terminal -e /home/user/run_mybash.sh --full-screen --hide-menubar
Comment: ไม่ใส่ก็ได้
- ตอนรันระบบขึ้นใหม่ เราตั้ง auto login ไว้ เราจะได้ terminal รันเต็มจอ โดยไม่มีเมนูบาร์ และ ทำงานตามคำสั่งใน run_mybash.sh ของเรา ด้วยสิทธิ์ sudo ของ user นั้นๆ
- Ubuntu Mate 18.04 ARM for Rasberry Pi 3 Model B+
Thursday, April 11, 2019
Create shortcut desktop and add auto startup when user login
- สร้างไฟล์ shortcut ชื่อ app.desktop ไปวางที่
/home/user/.config/autostart/app.desktop
- ในไฟล์ตัวอย่างจะให้ terminal ของ Rasbian เรียกใช้ไฟล์ .jar เพือรันโปรแกรมที่เราเขียนด้วย Java
- และให้แสดง terminal window ด้วย
[Desktop Entry]Ref
Encoding=UTF-8
Type=Application
Name=myappname
Comment=
Exec=lxterminal -e java -jar /home/pi/myapp.jar
StartupNotify=false
Terminal=true
Hidden=false
NoDisplay=false
ค้นหาไฟล์บน Linux
find /usr -name libpcsclite.so.1 //ค้นหาภายใต้ /usr
find / -name libpcsclite.so.1 // ค้นหาภายใต้ /
find / -name libpcsclite.so.1 // ค้นหาภายใต้ /
Library for Java use SmartCard Reader on Rasberry Pi 3 Model B+
- OS:Rasbian for Rasberry Pi 3 Model B+
- ติดตั้ง library เพิ่มให้ Java เราใช้งาน SmartCard Reader บน Rasberry ได้
sudo apt-get update
sudo apt-get install libusb-dev
sudo apt-get install pcscd // ตัวนี้สำคัญเพราะเป็น service ที่ใช้กับพวก Reader ต่างๆ
sudo apt-get install libpcsclite1
sudo apt-get install libpcsclite-dev
- เพิ่มเติมสำหรับตรวจสอบ Reader เรา
sudo apt-get install pcsc-tools
- ใช้คำสั่ง pcsc_scan เพื่อทดสอบว่า linux เราพบอุปกรณ์ SmartCard Reader หรือเปล่า
PC/SC device scanner
V 1.4.18 (c) 2001-2011, Ludovic Rousseau <ludovic.rousseau@free.fr>
Compiled with PC/SC lite version: 1.7.4
Using reader plug'n play mechanism
Scanning present readers...
0: OMNIKEY CardMan 3x21 00 00
Tue Sep 11 15:44:49 2012
Reader 0: OMNIKEY CardMan 3x21 00 00
Card state: Card inserted,
ATR: <some hexa codes>
...
- สำหรับตรวจสอบ library ที่ pcsc_scan ใช้ คำสั่ง
ldd -r /usr/bin/pcsc_scan
- เราจะพบพาธ library ที่สำคัญ เพราะ Java เราต้องใช้ตัวนี้ด้วย libpcsclite.so.1 (ซึ่งตัวนี้จะเป็น shortcut ชี้ไปยัง libpcsclite.so.1.0.0 อีกทีอ้างอิงบน Rasbian)
- ให้เราเปิดไฟล์ /etc/rc.local (for all user) หรือ /home/user/.bashrc (for one user) พิมพ์คำสั่งตั้งพาธสำหรับ Java ซะหน่อยให้พบ library ตัวนี้
- ตัวอย่างจากอ้างอิง
export _JAVA_OPTIONS="-Dsun.security.smartcardio.library=/usr/lib64/libpcsclite.so.1"
export JAVA_OPTS="-Dsun.security.smartcardio.library=/usr/lib64/libpcsclite.so.1"
- ประยุกค์ใช้กับ Rasbian บน Rasberry เราจะได้เป็นแบบนี้ (ใช้อันใดอันหนึ่งพอ)
export _JAVA_OPTIONS="-Dsun.security.smartcardio.library=/usr/lib/arm-linux-gnueabihf/libpcsclite.so.1"
export JAVA_OPTS="-Dsun.security.smartcardio.library=/usr/lib/arm-linux-gnueabihf/libpcsclite.so.1"
- ผู้เขียนใช้แค่ export _JAVA_OPTIONS ใน .bashrc สำหรับ user เท่านั้น
- หรืออยากใช้แบบเฉพาะตอน รันขณะนั้น ก็ได้
java -Dsun.security.smartcardio.library=/usr/lib/arm-linux-gnueabihf/libpcsclite.so.1 File.java
- ถ้าเป็น Ubuntu Mate for Rasberry Pi 3 ไม่ต้อง export path java ไปที่ libpcsclite1.so นะมันคงเห็นพาธนี้แล้วตั้งแต่ลง Java แต่สำหรับ Rasbian ไม่ใช่ต้อง export แบบ global (/etc/rc.local) หรือ เฉพาะ user ก็ (/home/user/.bashrc)
- หรือจะเขียนโค้ด Load library ก่อนทุกครั้งก็ได้เช่นกัน javax.smartcardio library
try {
String comm[] = { "find", "/usr", "/lib", "-name",
"libpcsclite.so.1" };
Process p = Runtime.getRuntime().exec(comm);
BufferedReader reader = new BufferedReader(
new InputStreamReader(p.getInputStream()));
while ((line = reader.readLine()) != null && !line.equals("")) {
if (line.contains("libpcsclite.so.1")) {
System.setProperty("sun.security.smartcardio.library",line);
break;
}
}
p.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
Add- สำหรับ Ubuntu Desktop ทดสอบบน 18.04 แต่ OpenJDK 10 ไม่พบ javax.smartio
- ต้องใช้ OpenJDK 11 หว่า สงสัย 10 ต้อง export path แน่ๆ เลย ลง libusb-de pcscd libpcsclite1 libpcsclite-dev แล้ว ไม่ต้อง set path libpcsclite.so.1 น่ะมันมองเห็นเลย
- และ Ubuntu - Mate for Rasberry ก็ไม่ต้อง export เหมือนกันนะ
- แต่ Rasbian ต้อง export path สำหรับ libpcsclite.so.1 นะ จำได้
Install Java with RXTX and MySQL on Ubuntu Mate for Rasberry Pi 3 Model B+
- ได้ลองเล่น Rasberry Pi 3 Model B+ เค้าลง Rasbian มาให้ ก็ลองแล้วโอเค เร็วดี
- แต่อยากลอง Ubuntu พยายามหาอยู่ Ubuntu Mate ลงง่ายสุดแล้ว สำหรับ Ubuntu
- จะพัฒนาโปรแกรมอ่านค่าจาก SmartCard Reader แบบ USB เสียบเอา ด้วย Java
- และมีการติดต่อ COMPORT ด้วย
- ลองใช้ java -version อยู่ไม่พบอะไรที่บ่งบอกว่าลงแล้ว
- โพสนี้ขอเขียนบันทึกเกี่ยวกับลง .jar และ .so ของ library เสริมก่อน
- RXTX library สำหรับ อ่านและเขียนผ่าน comport ของ java เค้า
- MySQL library ก็สำหรับเชื่อมต่อ java กับ MySQL ไง
- ก่อนอื่นเลยต่อเน็ตให้ Ras เราก่อนจากนั้นก็
sudo apt-get update
- ลองใช้ "sudo apt-get install openjdk-" แล้วกด Tab ดูเพื่อให้แสดง list ที่ repo เรามีให้ใช้ (repository default)
- ลองลง openjdk-11-jdk ใช้แล้วไม่เวิร์คอ่ะ
- เพราะพาธมันไม่มี .../jre/lib/ext/ ไว้สำหรับวางไฟล์ .jar หรือ .so เช่น RXTXcomm.jar , mysql-connector.jar , librxtxSerial.so เป็นต้น ซึ่งมันจำเป็นต้องใช้สำหรับติดต่อ commport
- สรุป สำหรับโปรเจคที่ว่านี้คือ จะใช้ SmartCard Reader และ อ่านเขียนค่าผ่าน COMPORT ด้วยจึงจำเป็นต้องใช้
sudo apt-get install openjdk-8-jdk
- จากนั้นก็ลง lib java ที่จำเป็นต้องใช้
sudo apt-get install librxtx-java libmysql-java
- เราจะได้ไฟล์ ที่จำเป็น อยู่ที่พาธ /usr/share/java/
RXTXcomm-2.2pre2.jar (RXTXcomm.jar - shortcut )
mysql-connector-java-5.1.42.jar (mysql-connector-java.jar - shortcut)
- shortcut ทั้ง 2 จะชี้ไปไฟล์ต้นฉบับพร้อมพาธเต็ม /usr/share/java/...
- ให้เราคัดลอกไฟล์ตัวจริง และ shortcut ไปวางไว้ที่
/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre/lib/ext/
- จากนั้น คัดลอก .so ตามนี้ไปวางที่เดียวกับที่ว่าง .jar เมื่อกี้ (พาธอยู่ที่ /usr/lib/jni/librxtx....so )
librxtxSerial.so (shortcut ไปยังไฟล์ ...2.2pre1.so นั่นและ), librxtxSerial.so-2.2pre1.so
librxtxParallel.so (shortcut), librxtxParallel.so-2.2pre1.so
- ไฟล์พวกนี้ตอนใช้งานโปรแกรมที่ใช้ Java Runtime จะไปหา extension และ library พิเศษของเราในนี้แหละ
- เพียงเท่านี้ Java บนเครื่องเราก็สามารถอ่านเขียนผ่าน COMPORT และ เชื่อมต่อ MySQL ได้
Add
- การใช้งาน COMPORT บน Rasbian ไม่ต้องใช้ sudo ก็ได้
- แต่บน Ubuntu Mate ต้อง sudo หรือสิทธิ์ root ถึงจะใช้ COMPORT ได้
- add path และ รันโดยเรียกใช้ jar ด้วย
java -Djava.library.path=/usr/lib/jni -cp /usr/share/java/RXTXcomm.jar -jar BMSApp.jar
- หรือ ใช้ compile โดยเรียกใช้ jar ด้วย
javac -cp .:/path/file.jar File.javaRef
How to forget saved wifi network on a Rasberry Pi 3 Model b+
- OS Rasbian
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="WIFI1"
psk="passwordwifi1"
}
network={
ssid="WIFI2"
psk="passwordwifi2"
}
- ตามนี้ลบ SSID ใหนที่ไม่ต้องการจัดเลย
Ref
- https://medium.com/@spobwoode/how-to-forget-a-saved-wifi-network-on-a-rasberry-pi-4cbbcf53b128