2025年1月12日 星期日

利用MSbuild命令來建置程式,將版本都修改成VS22的版本

一般對於舊的建置檔會出現版本錯誤 所以要修改vcxproj的檔案內容 修改標籤為10.0.18362.0 還要修改標籤為v143 依照目前的版本為10.0.18362.0跟工具版本為v143 都改好後就可以利用MSBuild來執行建置 但是x86的要使用x86 Native來建置 x64就用x64 Native來建置 這樣就可以建置舊版本

2024年12月21日 星期六

淺嚐MariaDB(Mysql)加python加excel

 首先架設好MariaDB(MySQL)以及準備好資料庫

然後安裝Python並且加上openpyxl模組、mysql-connector-python模組〈也有pymysql模組〉

最後再來準備個Excel就可以開始


首先確認可以用 python來打開Excel檔

import openpyxl

fn = test1.xlsm

wb = openpyxl.load_workoook(fn)

print(type(wb))

print("列出全部工作表", wb.sheetnames)

print("目前使用中的工作表〈上次最後存檔的工作表〉", wb.active)

#指定操作的工作表

ws = wb['工作表1']

#如果是使用中的工作表可以用 ws = wb.active喔

#列出全工作表1內容

for row in ws.iter_rows[values_only=True):

     print(type(row)

     print(row)

#關閉檔案

wb.close()

這樣就可以測試了

再來確認python可以正常連線mysql,這邊要注意的是mysql的主機在遠方的話會無法連線,所以主機還要設定成可以遠方連線的狀態

import mysql.connetor

conn = mysql.connector.connect(

 host = 'localhost' #遠方的話請改成IP

 user='user'

 password='pasword'

 charset='utf8' # 先宣告成utf8格式

)

cursor = conn.cursor()

cursor.execute("show databases;")

result = cursor.fetchall()

print(result)

conn.close()

看測試有沒有正常連線

接下來就是兩個組合一起,把Excel的資料寫到資料庫中

import mysql.connetor

import openpyxl


fn = 'test1.xlsm'

wb = openpyxl.load_workoook(fn)

ws = wb.active

#mysql Command

command = "INSERT INTO Test1 (No) VALUES ('{0}')"   

# 這邊用{0}就是等一下把Excel的資料放進來的變數

for row in ws['A2':'A9999']:

   for cell in row:

    if cell in row:

        var = cell.value

           command1 = command .formart(val)

            cursor.execute(command1)

            conn.commit()

conn.close()

wb.close()

以上就可以把資料寫到資料庫中,至於反向也是類似方式

變成資料庫查詢後的資料再寫到Excel中


在Slackware中建立跟設定MariaDB

 在Slackware中建立跟設定MariaDB

1. 安裝標準的資料庫

mysql_install_db

2. 變更資料庫的群組跟人員,主要是因為用root建立時期資料庫檔會變成root

chown -R mysql:mysql /var/lib/mysql

3. 讓rc.mysqld程執行狀態

chmod 755 /etc/rc.d/rc.mysqld

4.執行

/etc/rc.d/rc.mysqld start

5.做安全配置

mysql_secure_install

過程中會詢問root是否要變更密碼,一般是會分開不同的密碼

其他的就y回答即可

2024年8月20日 星期二

在Linux中調整cpu頻率及效能

利用 /sys/devices/system/cpu/cpufreq/policy/scaling_min_freq 中設定最低頻率

◎ 當有多核心時policy會從policy0 到 policy該系統中的最多核心數

使用命令

echo 頻率,單位KHz > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq

範例設定為3.3GHz

echo 3300000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq

接下來可以設定效能狀況

/sys/devices/system/cpu/cpufreq/policy/scaling_governor

可以設定的值有

preformance:使用全速的狀態

ondemand:大約設定在75%的狀態

conservative:大約設定在95%的狀態

powersave:設定再最低速度狀態

userspace:由使用者指定,須配合/sys/devices/system/cpu/cpufreq/policy/scaling_setspeed

 範例將cpu設定到全速

echo "preformance" > /sys/devices/system/cpu/cpufreq/policy/scaling_governor

2024年1月20日 星期六

在Aspire Switch 10中設定grub的方法

 在嘗試安裝grub很多次後

依照正常的部分先做

grub-install --target=i386-efi --efi-directory=/boot/efi \
--removable --boot-directory=/boot/efi/EFI \
--bootloader-id=grub /dev/sdX

我這邊利用外接的隨身碟來當ELF的開機

執行完成後要將/boot/EFI下的目錄複製到隨身碟中

這樣就能正常開機

一般用

32位元版EFI 命令

grub-install --target=i386-efi --efi-directory=/boot/efi --removable

64位元版EFI 命令

grub-install --target=x86_64-efi --efi-directory=/boot/efi --removable

2024年1月9日 星期二

Arch linux 設定網路(有線)

 首先呢確認網路介面

 

由於後期網路介面跟早期命名方式有所差異

早期一是用eth0 eth1 eth2 .....

現在是依照裝置類型:

en Ethernet LAN

wl Wifi LAN

裝置位置 + 裝置編號

所以架構起來就像  en p0 s3 = enp0s3

 

確定好介面後,這邊用DHCP來取得ip位址

首先建立檔案於 /etc/systemd/network

建檔名稱為 20-wired.network

內容如下 

[Match]

Name=enp0s3

#Name=Device

[Network]

DHCP=ipv4

存檔後

執行systemctl enable systemd-networkd.service

再執行 systemctl start systemd-networkd.service

這樣網路就可以使用了

2023年12月30日 星期六

於Acer的AspireSwitch10上安裝Slackware 15.0

因為覺得Win10對這台筆電來說系統太大了

決定換裝成Linux,只是選用Slackware 15.0來裝

只是這個筆電僅支援EFI 開機,而且還要用32位元的EFI

 所以得先去下載bootia32.efi檔

下載後於隨身碟中建立資料夾/EFI/BOOT

然後再將slackware64-15.0的光碟影像檔中的資料複製到另一個隨身碟或分割區中

並將檔案放入後即可開機

開機後會進到grub的維修模式 

 首先要先找到slackware的隨身碟或分割區

用ls 

 

此時依照可能的位置去找

ls (cd0)/


 此時輸入

set root=(cd0)

linux /EFI/BOOT/huge.s

initrd /EFI/BOOT/initrd.img 

 

然後開機

輸入boot

這樣就可以正常進入開機程序

主要需要注意的是,在分割硬碟時不可以使用GPT的格式,而是選用dos格式,如下

 

 這邊我是先分割好硬碟再進入安裝程序

安裝程序依照slackware的安裝步驟

但是安裝完成後重開後發生EFI進不去的狀況

只好用一開始做好的EFI來開機

輸入 set root(hd0,msdos1)

linux /EFI/Slackware/vmlinuz root=/dev/mmcblk1p3

initrd /EFI/Slackware/initrd.gz

boot

開機,但會在mount /時出錯

覺得是因為使用mmc的關係,少掛載了關於mmc的模組

這個時候我另外一台主機上重建initrd.gz 

利用 mkinitrd

mkinitrd -c -k 5.15.145 -f ext4 -r /dev/sda2 -m \
intel_soc_dts_thermal:intel_soc_dts_iosf:\intel_powerclamp:coretemp:kvm_intel:kvm:spi_nor:irqbypass:r8723bs:\mtd:crct10dif_pclmul:crc32_pclmul:libarc4:polyval_generic:iTCO_wdt:gf128mul:\spi_intel_platform:mei_pxp:mei_hdcp:ghash_clmulni_intel:intel_pmc_bxt:spi_intel:\iTCO_vendor_support:gpio_keys:mmc_block:cfg80211:sha512_ssse3:intel_rapl_msr:\i915:aesni_intel:hci_uart:crypto_simd:ak8975:cryptd:btqca:intel_cstate:acer_wmi:btrtl:\drm_buddy:intel_bytcrc_pwrsrc:i2c_algo_bit:sparse_keymap:btbcm:i8042:\

int3401_thermal:ttm:mei_txe:btintel:vfat:processor_thermal_device:fat:\

serio:wmi_bmof:mei:lpc_ich:processor_thermal_rfim:drm_display_helper:\

inv_mpu6050_i2c:bluetooth:cec:inv_mpu6050:intel_gtt:processor_thermal_mbox:\

industrialio_triggered_buffer:ac97_bus:processor_thermal_rapl:soc_button_array:\

dptf_power:dw_dmac:mousedev:kfifo_buf:joydev:int3406_thermal:cm32181:\

mac_hid:ecdh_generic:int3400_thermal:int3403_thermal:intel_rapl_common:\

acpi_thermal_rel:int340x_thermal_zone:intel_int0002_vgpio:acpi_pad:rfkill:\

i2c_mux:sdhci_acpi:industrialio:i2c_hid_acpi:sdhci:mmc_core:i2c_hid:8250_dw:\

hid_multitouch:hid_ite:loop:fuse:dm_mod:bpf_preload:ip_tables:x_tables:ext4:\

crc32c_generic:crc16:mbcache:jbd2:uas:usb_storage:crc32c_intel:\

xhci_pci:xhci_pci_renesas:video:wmi:usbhid -u -o /boot/initrd.gz

然後將vmlinuz跟重建好的initrd.gz都放進可以開機的隨身碟中

重新開機再進grub的維修模式中輸入

set root(hd0,msdos1)

linux /EFI/Slackware/vmlinuz root=/dev/mmcblk1p3

initrd /EFI/Slackware/initrd.gz

boot

此時就可以正常開機

目前只能這樣才能正常開機,不知道為什麼無法從他的固態硬碟中開機