git에서 repository에 파일은 추가해서 두고 싶지만 해당 파일이 빌드 중 변경되는 등의 이유로 변경은 무시하고 싶은 경우가 있다. 이런 경우 .gitignore에 추가해도 repository에 추가된 파일이므로 변경을 계속 추적하게 된다. 이 변경을 무시하고 싶다면 다음 명령을 주면 된다.
git update-index --assume-unchanged <file>
위 명령을 주면 해당 파일은 변경되어도 git status를 해도 나오지 않고 무시된다. 그러므로 주의해야 한다. 해당 파일을 다시 추적하고 싶다면 다음 명령을 입력한다.
링킹 관련 object file을 다루는 binutils 몇가지를 설명하고 command 예제를 보인다.
nm: object 파일 내의 symbol 을 나열한다.
nm dasomoli.o
readelf: symbol table을 보인다.
readelf -s dasomoli.o
readelf -hSl dasomoli.o
몇가지 옵션은 다음과 같다.
-h --file-header Display the ELF file header
-l --program-headers Display the program headers
--segments An alias for --program-headers
-S --section-headers Display the sections' header
--sections An alias for --section-headers
-s --syms Display the symbol table
--symbols An alias for --syms
--dyn-syms Display the dynamic symbol table
--lto-syms Display LTO symbol tables
--sym-base=[0|8|10|16]
Force base for symbol sizes. The options are
mixed (the default), octal, decimal, hexadecimal.
objdump: object file 내의 machine level 명령 및 그 disassembly를 보인다. macOS에서는 gobjdump를 사용한다.
objdump -d dasomoli.o
다음과 같이 -s -j 옵션으로 section 내용 확인이 가능하다. -s 는 선택된 section의 모든 내용을 보여 준다. -j <section> 은 section의 내용을 모두 표시한다.
objdump -s -j .data dasomoli.out
-S 옵션으로는 source disassembly 내용을 표시한다.
objdump -S dasomoli.out
size: static memory layout에 해당하는 세그먼트를 살펴볼 수 있다. POSIX utility program이다. macOS에도 있다.
root@bamtol:/etc/letsencrypt# certbot --apache
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: blog.dasomoli.org
2: torrent.dasomoli.org
3: www.dasomoli.org
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 2
Requesting a certificate for torrent.dasomoli.org
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/torrent.dasomoli.org/fullchain.pem
Key is saved at: /etc/letsencrypt/live/torrent.dasomoli.org/privkey.pem
This certificate expires on 2023-06-07.
These files will be updated when the certificate renews.
Deploying certificate
Successfully deployed certificate for torrent.dasomoli.org to /etc/apache2/sites-available/torrent.dasomoli.org-le-ssl.conf
Congratulations! You have successfully enabled HTTPS on https://torrent.dasomoli.org
NEXT STEPS:
- The certificate will need to be renewed before it expires. Certbot can automatically renew the certificate in the background, but you may need to take steps to enable that functionality. See https://certbot.org/renewal-setup for instructions.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
* Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
* Donating to EFF: https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
그럼 /etc/apache2/sites-enabled/torrent.dasomoli.org-le-ssl.conf 파일이 생성되는데 여기에 SSLProxyEngine on 옵션을 추가해준다. 그럼 이렇게 된다.
<IfModule mod_ssl.c>
<VirtualHost *:443>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
ServerName torrent.dasomoli.org
ServerAdmin dasomoli@gmail.com
ProxyPass / http://localhost:9000/
ProxyPassReverse / http://localhost:9000/
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/torrent.log
CustomLog ${APACHE_LOG_DIR}/torrent.access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
SSLCertificateFile /etc/letsencrypt/live/torrent.dasomoli.org/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/torrent.dasomoli.org/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLProxyEngine on
</VirtualHost>
</IfModule>
인터넷 커뮤니티를 기웃거리다 전력 사용이 적다는 미니 PC 딜을 발견했습니다. 라즈베리 파이 4를 기존에 개인 NAS 및 블로그 용도로 사용했는데, 이걸 사용하던 주된 이유가 전력을 적게 먹으면서도 필요한 기능을 다 할 수 있었기 때문이었거든요. M1이나 M2 맥 미니로 바꿀까 생각 중이었는데, 이 정도로도 충분하다고 생각하고 질렀습니다! 아마존에서 구입했는데, 배송비 포함 157.29 달러 외 별도 금액은 들지 않았습니다.
모델명은 AK7 Pro이고, 사양은 11th Gen Intel N5105 (Up to 2.9GHz), 램 8GB, SSD 256GB, 그리고 4K@60Hz를 지원하는 HDMI 2개, WIFI와 블루투스 4.2, 기가비트 이더넷, USB 3.0 2개, USB 2.0 2개를 지원합니다. 그리고 윈도우즈 11 Pro 정품이 설치되어 있습니다. 아마존 Q&A에 사용되는 드라이버를 따로 받을 수 있냐는 질문에 안된다고 깔려 있는 거 쓰라고 합니다.
외형을 살펴볼까요? 한 쪽 면에는 전원 스위치와 USB 3.0 포트 두개, USB 2.0 포트 하나가 있습니다.
다른 한쪽 면에는 DC 전원어댑터 구멍, USB 2.0, HDMI 단자 두 개, 이더넷, AUX/MIC 홀이 있습니다.
DC 전원 어댑터는 아래처럼 생겼습니다. 프리볼트긴 합니다만, 11자라 돼지코 필요합니다. 켜져 있을 때는 괜찮은데, 꺼져 있을 때 전원 어댑터를 연결해두면 삐~ 고주파가 들립니다. 저야 24시간 돌아 갈 용도이긴 합니다.
아래 면은 VESA 홀이 있어서 모니터에 붙여서 사용할 수 있습니다. 붙일 수 있는 부속품을 함께 제공합니다.
SATA M.2 SSD 256GB 가 달려있습니다. CYX는 어디건지.. 나중에 찾아보니 이 Mini PC 제조사인 것 같습니다. M.2 SSD 옆에 SATA 단자와 2핀짜리 Power도 있어서 확장도 할 수 있다고는 합니다. 그런데 어디로 저 선을 빼야…. 구멍을 뚫어야 하려나요.. 나사가 또 보이니까 더 뜯어봅시다.
방열판에 써멀 발라 붙이고 팬을 돌려서 방열을 하고 있네요. 다시 덮고 전원을 넣어서 켜 봅니다. 윈도우 설치는 영어로 진행할 수 있는데, 언어팩 등을 설치하고 전역 설정을 해주면 한글로도 잘 사용할 수 있습니다. 4K@60Hz도 잘 나오네요. 정보에 프로세서는 2.00 GHz로 나오네요.
SATA SSD 성능을 한번 볼까요?
근데 아까 M.2 슬롯을 보니 NVME도 꽂을 수 있을 거 같던데요? 한번 꽂아봅시다. WD_BLACK SN750 1TB입니다.
인식을 할까요? 오! BIOS에서 잡네요! 그럼 NVME SSD를 하나 사서 달아야겠습니다. 어차피 라즈베리 파이 4에서는 MicroSD 썼었는데 NVME SSD면 차고도 넘칩니다. 같은 용량으로 싼 거 사서 답니다.
다른 PC에서 마이그레이션해서 부팅하니 잘 됩니다. SSD 성능도 잘 나옵니다. 더 좋은 걸 달고 싶지만, 이왕이면, 이왕이면.. 하다 어떻게 되는지 우리는 잘 알고 있습니다.